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

时间:2014-12-11 19:00:43

标签: c# sql-server-2008

我无法从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 Native Client 10.0] SQL Server网络接口:错误查找指定的服务器/实例[xFFFFFFFF]。

     

错误[HYT00] [Microsoft] [SQL Server Native Client 10.0]登录超时已过期

     

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

您可以完全信任网络位置(https://msdn.microsoft.com/en-us/library/zdc263t0(VS.80).aspx)或将项目移至本地驱动器。

答案 2 :(得分:0)

我认为问题是Connect字符串中的Server值:

来自MSDN

我认为你需要这样做:

  • 服务器= TCP:LDNPSM050000137 \ PLN000000014T
  • 服务器= NP:LDNPSM050000137 \ PLN000000014T

取决于您是否要使用TCP或命名管道......