无法使用 SqlConnection 连接到任何远程数据库

本文关键字:任何远 数据库 连接 SqlConnection | 更新日期: 2023-09-27 18:33:57

我无法从 C# 连接到特定的 SQL Server 2008 数据库服务器。

我能够使用 SSMS 进行连接,并使用 SQLCMD 运行查询,但是当我尝试使用 SqlConnection 从 C# 连接时,它无法打开带有SqlException的连接:

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

这是我的代码:

using (SqlConnection conn = new SqlConnection(@"Server=LDNPSM050000137'PLN000000014T;Initial Catalog=MiscData;Integrated Security=True;"))
{
    //exception occurs on this line
    conn.Open();
    //use connection
    conn.Close();
}

我使用 ODBC 得到类似的响应:

string connectionString = @"Driver={SQL Server Native Client 10.0};Server=LDNPSM050000137'PLN000000014T;Database=MiscData;Trusted_Connection=yes;";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    connection.Open();
}

此操作失败,并显示 OdbcExcpetion:

错误 [08001] [Microsoft][SQL Server 本机客户端 10.0]SQL Server 网络接口:查找指定的服务器/实例时出错 [xFFFFFFFF]。

错误 [HYT00] [Microsoft][SQL Server 本机客户端 10.0]登录超时已过期

错误 [08001] [Microsoft][SQL Server 本机客户端 10.0]与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

我已检查服务器和实例名称是否正确,并且服务器配置为允许远程连接,因为我可以通过 SSMS 进行连接。有没有人对问题可能是什么或如何解决这个问题提出建议?

更新:
如果这有助于某人诊断问题 - 这特定于我的机器/用户帐户。 我的同事可以从他的机器上运行代码。我还能够使用连接字符串连接到我的本地实例,并对ServerInitial Catalog进行适当的更改。

所有远程数据库服务器都会发生此错误。

无法使用 SqlConnection 连接到任何远程数据库

我不确定这是否特定于我公司的特定 IT 基础架构 - 但这对我不起作用的原因是该项目保存在存储在网络共享上的"我的文档"中。 显然,当执行代码位于网络共享上时,.NET 不会允许您连接到远程数据库服务器 - 当我将项目复制到本地驱动器时,它工作正常。 我使用的是Windows 7和Visual Studio 2012。

默认情况下,网络共享具有部分信任,因此当项目位于本地驱动器上时正常工作的内容(例如连接到远程服务器(不会来自网络位置。

您可以为网络位置提供完全信任 (https://msdn.microsoft.com/en-us/library/zdc263t0(VS.80(.aspx(,也可以将项目移动到本地驱动器上。

我认为问题是连接字符串中的服务器值:

来自 MSDN

我认为你需要这样做:

  • 服务器=tcp:LDNPSM050000137''PLN000000014T
  • 服务器=np:LDNPSM050000137''PLN000000014T

根据您是要使用 TCP 还是命名管道...

相关文章: