2016-04-29 47 views
3

我想通過Visual Studio 15使用連接字符串連接到本地Sql Server 2012數據庫實例。雖然我已經能夠通過Visual Studio SQL Server對象資源管理器連接到數據庫併成功運行測試過程,但我無法在使用連接字符串的項目中這樣做。無法使用連接字符串連接到本地SQL Server數據庫,但VS可以

下面是由SQL Server的對象資源管理器給我的連接字符串

<connectionStrings>  
    <add name="objConnLocal" 
connectionString="Data Source=DESKTOPIVO;Integrated Security=True;Initial Catalog=tnk;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;"providerName="System.Data.SqlClient"/> 
</connectionStrings> 

這裏是我的代碼工作完全正常連接到Azure的DB與Azure的給定的連接字符串(代碼工作)

public class DbConn 
{ 

public static string DatabaseConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["objConnLocal"].ConnectionString; 
    public static SqlConnection objConn = new sqlConnection(DatabaseConnectionString); 



public void spCMSSelectTest(out DataSet ds) 
{ 
    ds = new DataSet("buttons"); 
    SqlDataAdapter objDataAdapter = new SqlDataAdapter(); 
    SqlCommand cmd = new SqlCommand("spCMSSelectTest", DbConn.objConn); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Connection.Open(); 
    objDataAdapter.SelectCommand = cmd; 
    objDataAdapter.Fill(ds); 
    cmd.Connection.Close(); 
} 
} 

這是我試圖連接到數據庫:enter image description here

這裏是測試頁面,我試圖訪問:

protected void Page_Load(object sender, EventArgs e) 
{ 
    DataSet ds; 
    try 
    { 
    dbc.spCMSSelectTest(out ds); 

     lblTest.Text = ds.Tables[0].Rows.Count.ToString(); 
    } 
    catch (Exception easd) 
    { 
     lblTest.Text = easd.ToString(); 
    } 

} 

我一直在這裏和谷歌的谷底回答,但似乎沒有任何工作對我來說。我錯過了什麼?

編輯: 有錯誤:

System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'IIS APPPOOL\DefaultAppPool'. at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at DbConn.spCMSSelectTest(DataSet& ds) in c:\inetpub\wwwroot\CMS\App_Code\DbConn.cs:line 22 at index.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\CMS\index2.aspx.cs:line 18 ClientConnectionId:d576fae4-db3d-451d-8436-2abe003c01f0 Error Number:18456,State:1,Class:14

+1

你有什麼錯誤的連接? – BugFinder

+0

無。我嘗試訪問一個只調用上述過程並將結果輸出到標籤的頁面,當我嘗試打開頁面/localhost/cms/index2.aspx時,它將我返回到/ localhost /,並向我顯示藍色的IIS默認頁面 –

+1

,聽起來像一個iis問題聽起來不像sql連接問題 – BugFinder

回答

2

您以可信用戶身份登錄(默認) - 並且該用戶是您需要以您身份登錄或SQL登錄的池用戶IIS APPPOOL \ DefaultAppPool。因爲它不像使用桌面一樣在池中運行時使用相同的憑據。

1

你錯過了數據庫。

Initial Catalog=tnk添加到您的連接字符串。

+0

哦,是的,忘了提及它,我試過了,它沒有奏效。試過* tnk *和* master *,因爲我的數據庫名稱是tnk。更新了我的問題以包含目錄。 –

+0

好的。你有錯誤嗎?您是否嘗試過運行您在SSMS中引用的存儲過程以查看獲得的結果?還要將代碼封裝在try-catch中,並查看拋出異常時得到的詳細信息。 –

+0

當我嘗試訪問僅調用上述過程的測試頁時,我不會收到錯誤,它只是將我返回到藍色iis主屏幕。它無法打開連接(cmd); –

相關問題