【问题标题】:Unable to connect to remote SQL Server Instance from C# Application无法从 C# 应用程序连接到远程 SQL Server 实例
【发布时间】:2021-06-17 15:23:30
【问题描述】:

我们在虚拟机上有一个远程 SQL Server 实例,我们可以从本地计算机上的 SQL Server Management Studio 成功连接到该实例。

但是,我在从 C# 应用程序连接到此数据库时遇到问题。我的连接字符串如下:

string ConnectionString = "server=METRODEMO\\SQLEXPRESS;Database=Logger;Trusted_Connection=True;";

我也查了一下,远程SQL Server上的属性如下:

SQL Native Client 11.0 Configuration (32 bit)-->Client Protocols    
  Shared Memory - Enabled   
  TCP/IP        - Enabled   
  Named Pipes   - Enabled

在 SQL Server 网络配置 -- SQL Server Express 协议中,IP 地址的属性在 IPAll 部分中将 TCP 端口设置为 1433。

但是,当我尝试连接时,出现以下错误:

System.Data.SqlClient.SqlExceptionHResult=0x80131904

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。
服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。
(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

我做错了什么?

【问题讨论】:

  • 您是否验证过 C# 确实在使用该连接字符串?
  • 您是否“验证了实例名称是否正确”或者机器名称是否正确?这台机器和客户端机器之间是否有任何防火墙?你能在客户端机器上ping吗?

标签: c# sql-server


【解决方案1】:

使用Trusted_Connection=yes 而不是true。或者使用Integrated Security=SSPI 而不是Trusted_Connection

https://www.connectionstrings.com/sql-server-native-client-11-0-oledb-provider/

所以:

string ConnectionString = "server=METRODEMO\\SQLEXPRESS;Database=Logger;Trusted_Connection=yes;";

或者:

string ConnectionString = "server=METRODEMO\\SQLEXPRESS;Database=Logger;Integrated Security=SSPI;";

【讨论】:

  • 极不可能是问题,因为它甚至没有找到服务器
猜你喜欢
  • 2011-10-22
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 2018-09-19
  • 2023-03-20
  • 2020-01-24
相关资源
最近更新 更多