尝试从我的 C# 应用程序中打开数据库连接时,我看到以下错误。我意识到这个错误之前可能已经出现在 100 个问题上。但是,在这种情况下,错误只会出现在我的特定桌面 PC上运行的C# 应用程序上。我已经通过谷歌和这个网站搜索了互联网,但我找不到解决方案。
错误:
“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问该服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)”
为什么这个场景是独一无二的:
我能够从SQL Server Management Studio (SSMS)连接到 SQL 服务器。此应用程序在另一台计算机上运行,并且能够从那里建立到 SQL 服务器的连接。所以这个错误场景是特定于在我的特定桌面 PC 上运行的 C# 应用程序。其他应用程序工作(SSMS)。其他电脑的工作。
当我使用 WireShark “嗅探电线”时,跟踪显示我的应用程序正在尝试通过 NamedPipes(即 \Server\IPC$)进行连接。我似乎无法强迫它使用 TCP/IP。
我尝试过的事情:
- 重新安装.NET Framework
- 重新安装 Visual Studio (C# - Express 版本 2010)
- 在 cliconfg.exe 中创建了一个别名。
有什么我错过的吗?
这是我尝试过的连接字符串...
Data Source=<servername>;Initial Catalog=HIE;Integrated Security=true
Server=tcp:10.240.11.81;Integrated Security=SSPI; database=HIE
Data Source=10.240.11.81,1433;Network Library=DBMSSOCN;Initial Catalog=HIE;User ID=<SqlUserIdThatISetUpAsSysAdmin>;Password=<password>
这是代码片段:
_conn = new SqlConnection(); // _conn declared globally
_conn.ConnectionString = <the connection string above>;
_conn.Open();