我无法从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连接。有人建议问题可能是什么或如何解决这个问题?
更新
如果这有助于某人诊断问题 - 这是我的机器/用户帐户特有的。我的同事可以从他的机器上运行代码。我还可以使用连接字符串连接到我的本地实例,并对Server
和Initial Catalog
进行适当的更改。
所有远程数据库服务器都会发生错误。
答案 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或命名管道......