首页 文章

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

提问于
浏览
4

我正在尝试使用连接字符串通过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给定的连接字符串(代码工作)

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):用户'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选项,DbConnectionPoolKey poolKey,对象poolGroupProviderInfo,池类DBConnectionPool,的DbConnection owningConnection,DbConnectionOptions USEROPTIONS)在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(池类DBConnectionPool,的DbConnection owningObject,DbConnectionOptions选项,DbConnectionPoolKey poolKey, System.Data.ProviderBase.DbConnectionPool.CreateObject上的DbConnectionOptions(userOptions)(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionIn) System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection)处于System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean allowCreate,Boolean onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal&)中的ternal oldConnection)连接)在System.Data.ProviderBase.DbConnectionPool.TryGetConnection(的DbConnection owningObject,TaskCompletionSource1重试,DbConnectionOptions USEROPTIONS,在System.Data.ProviderBase.DbConnectionFactory.TryGetConnection DbConnectionInternal&连接)(的DbConnection owningConnection,TaskCompletionSource1重试,DbConnectionOptions USEROPTIONS,DbConnectionInternal oldConnection,DbConnectionInternal&连接)在System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionS)在DbConn的System.Data.SqlClient.SqlConnection.Open()处的System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1重试)的System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry)处的ource1重试,DbConnectionOptions userOptions) c:\ inetpub \ wwwroot \ CMS \ App_Code \ DbConn.cs中的.spCMSSelectTest(DataSet&ds):位于c:\ inetpub \ wwwroot \ CMS \ index2.aspx.cs中index.Page_Load(Object sender,EventArgs e)的第22行:第18行ClientConnectionId:d576fae4-db3d-451d-8436-2abe003c01f0错误号码:18456,州:1,类:14

2 回答

  • 1

    您以受信任的用户身份登录(默认) - 该用户是您需要以您身份登录的池用户IIS APPPOOL \ DefaultAppPool,或SQL登录 . 因为它在池下运行时不使用相同的凭据,因为它来自您的桌面 .

  • 3

    你错过了数据库 .

    Initial Catalog=tnk 添加到您的连接字符串 .

相关问题