簡體   English   中英

無法使用連接字符串連接到本地 SQL Server DB,但 VS 可以

[英]Can't connect to local SQL Server DB with connection string, but VS can

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

這是我的連接字符串,由 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 給定的連接字符串連接到 Azure DB(代碼有效)

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();
}
}

這是我嘗試連接的數據庫: 在此處輸入圖片說明

這是我嘗試訪問的測試頁面:

 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):用戶“IIS APPPOOL\\DefaultAppPool”登錄失敗。 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool System and String AccessToken at .Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 選項, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningKey, PoolConnectionOptions) DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionIn 內部 oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)連接)在 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, DbConnectionOptions userInOptions DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection externalConnection, DbConnectionFactory connectionFactory, TaskCompletio 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1 重試) 在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 重試) 在 System.Data.SqlClient.SqlConnection.Open()在 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 錯誤號:18456,State:1,Class:14

您正在以受信任的用戶(默認)身份登錄 - 該用戶是池用戶 IIS APPPOOL\\DefaultAppPool,您需要以您的身份登錄,或者使用 SQL 登錄。 因為它在池下運行時不使用與桌面上相同的憑據。

你缺少數據庫。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM