none
远程SQL Server数据库连接失败 RRS feed

  • 问题

  • <connectionStrings>
    	<add name="myconn" connectionString="Data Source=IP,1393;Initial Catalog=数据库;
    		Integrated Security=False;User ID=ID;Password=pwd;pooling=false" providerName="System.Data.SqlClient" />
    </connectionStrings>
    
    string connString = ConfigurationManager.ConnectionStrings["myconn"].ConnectionString;
    
    SqlConnection conn = new SqlConnection(connString);
    
    conn.Open();

    System.Data.SqlClient.SqlException HResult=0x80131904 Message=用户 'CustomSMS' 登录失败。 A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 - 远程主机强迫关闭了一个现有的连接。) Source=Core .Net SqlClient Data Provider StackTrace: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) 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.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at TestSMS.Program.Main(String[] args) in D:\Visual_Studio_WorkSpace\TestSMS\Program.cs:line 41 此异常最初是在此调用堆栈中引发的: [外部代码] TestSMS.Program.Main(string[]) (位于 Program.cs 中)

    请各位大佬答疑解惑!!!

    2020年9月7日 2:21

全部回复

  • 你好,

    请问该问题是突然发生并且只在此客户端无法连接吗?在此客户端使用SSMS进行远程连接是否也会由于此错误而连接失败。

    请问客户端和SQL Server端所在机器的Windows或Windows Server系统的版本。

    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月7日 9:23
  • 您好,

    使用客户端SSMS可以连接,通过代码就不行了。报错就是上面给出的

    2020年9月9日 0:23
  • 你好,

    请问客户端和SQL Server端所在机器的Windows或Windows Server系统的版本。
    如果可以使用相同的用户在SSMS上正常登录SQL Server的话,那么有可能是该代码使用的驱动程序的原因。

    在连接字符串加上Trusted_Connection=True呢


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.


    2020年9月9日 1:19
  • 您好,

    Windows版本 是  Windows 10 . Windows Server  1903

    2020年9月9日 1:52
  • Did you see login failure in sql server log?
    2020年9月9日 2:10
  • Is port 1434 open on your network?
    2020年9月9日 2:11
  • Yes,but we changed the port to 1393
    2020年9月9日 2:45
  • 你是说设置该SQL Server实例监听在1393 TCP 端口。

    既然可以通过SSMS进行远程连接,那么可以排除一般的连接问题,问题就应该在代码的连接参数或驱动上。


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月9日 7:30
  • Yes,but we changed the port to 1393
    You have to open port 1434 on network and start sql server browser service on sql server when use non-default port 1433 for sql. Or try connect with named pipes instead.
    2020年9月9日 14:37
  • 我使用的开发工具是Visual Studio 2019, 那应该使用哪些版本的驱动呢?
    2020年9月10日 0:43
  • 开发我不是很清楚,只是既然可以从SSMS连接,感觉就不是一般的连接问题。你在SSMS连接时也是指定IP地址和端口吗

    另外在连接字符串加上Trusted_Connection=True也是一样吗


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.


    2020年9月10日 0:54
  • 添加这个参数后提示另外一个错误
    
    System.Data.SqlClient.SqlException
      HResult=0x80131904
      Message=Failed to generate SSPI context.
      Source=Core .Net SqlClient Data Provider
      StackTrace:
       at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)
       at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
       at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
       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.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
       at System.Data.SqlClient.SqlConnection.Open()
       at TestSMS.Program.Main(String[] args) in C:\Users\11383\source\repos\TestSMS\Program.cs:line 42
    

    2020年9月10日 1:10
  • 应该要显示指定: Integrated Security=False

    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.


    2020年9月10日 1:27
  • 这个参数之前已经添加还是提示上述错误 <connectionStrings> <add name="myconn" connectionString="Data Source=IP; Initial Catalog=数据库; Integrated Security=False; User ID=ID;Password=pwd;pooling=false;Trusted_Connection=True" providerName="System.Data.SqlClient" /> </connectionStrings>

    这是我的连接字符



    2020年9月10日 1:36
  • 那好吧,那还是去除这两个参数吧。

    你这个连接字符和你问题中的字符不一样,没有带端口号吗

    目前根据你的描述,该SQL Server实例应该是命名实例,并且你为这个实例指定了静态端口号1393是吧


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月10日 1:41
  • 刚刚的连接字符串没有给出端口,实际是有的。  对的

    2020年9月10日 1:54
  • 你使用SSMS连接时是否也是使用相同的连接名称:IP,port.

    我看到过一些服务器名称导致的问题,但不知道是否适用你当前的场景。尝试在字符串中指定服务器名,端口 或(服务器名\实例名,端口),或(IP Address\实例名,端口)

    另外尝试使用windows认证连接试试。


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月10日 2:00
  • 这些都试过,也还是不行的。
    2020年9月10日 7:02
  • 明确感到SQL Server端的设置应该是没问题的,不然SSMS也无法远程连接上。

    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月10日 7:57
  • 设置是没问题的 ,不知道哪里的问题,一直没头绪
    2020年9月10日 8:01

  • 常见的连接问题其实都可以用SSMS来诊断,但是SSMS连接正常。。
    我不是很熟悉开发,现在只能建议再测试一下吧,比如使用VS 2017试试
    2020年9月10日 8:10
  • Tried this:

    <connectionStrings> <add name="myconn" connectionString="Data Source=IP,1393; Initial Catalog=数据库; Integrated Security=False; User ID=ID;Password=pwd;pooling=false;Trusted_Connection=True" providerName="System.Data.SqlClient" /> </connectionStrings>


    • 已编辑 rmiao 2020年9月11日 0:26
    2020年9月11日 0:25
  • 你好,

    如果您觉得我们的回复有帮助,请帮忙‘标记为答案'以帮助其他社区成员迅速找到有用的答复。
    如果没有,请回复并告诉我们当前情况,以便提供进一步的帮助。

    谢谢


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月14日 1:34