使用system.data.sqlclient时,同一程序将在一个盒子上连接而不是在另一个盒子上连接到第三个盒子上运行的同一个SQL Server R2 2008

时间:2015-06-12 17:03:00

标签: sql-server vb.net sql-server-2008 sql-server-2008-r2

让我看看我是否可以用正确的信息提出这个问题,而这些信息并没有让我们陷入野外。首先让我定义一个系统......(IP只是内部WAN,不是面向公共的)10.29.5.x子网可以路由到192.168.60.x子网。

框1运行Win 7 64位SQL Server R2 2008 IP地址192.168.60.71/24
框2运行Win 7 64位SQL Server R2 2008 IP地址10.29.5.70/24
方框3运行XP 32位IP地址10.29.5.74/24
Connect String是:Initial Catalog = Iris; Persist Security Info = False; connect timeout = 10; user ID = xxxxx_Programer; password = xxxxxPassword; Data Source = 192.168.60.71; Asynchronous Processing = True

该程序正在使用system.data.sqlclient(vb.net)。如果我在Box 2上运行它,它连接好了,如果我在Box 3上运行它就会出错。

错误:

  

System.Data.SqlClient.SqlException(0x80131904):与网络相关或   建立连接时发生特定于实例的错误   SQL Server。服务器未找到或无法访问。校验   实例名称正确且SQL Server配置为   允许远程连接。 (提供者:命名管道提供商,错误:40 -   无法打开与SQL Server的连接)

我假设没有网络,防火墙,代码或配置问题,因为我可以从方框2连接到方框3.我在框3上加载SQL Management Studio并尝试连接到方框1,它工作。
我正在考虑与.Net框架有关,因为我可以与SQL Management Studio连接。生产中的方框3将不具备它。 BTW,4.0是目标框架。
让我从这里开始,看看问题在哪里,如果有必要,我可以提供更多细节。

1 个答案:

答案 0 :(得分:0)

如果您使用用户和密码,则“Persist Security Info = True”

缺少“Provider = SQLOLEDB.1;”在连接字符串中。

尝试创建“sql.udl”文件并测试不同的配置。