让我看看我是否可以用正确的信息提出这个问题,而这些信息并没有让我们陷入野外。首先让我定义一个系统......(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是目标框架。
让我从这里开始,看看问题在哪里,如果有必要,我可以提供更多细节。
答案 0 :(得分:0)
如果您使用用户和密码,则“Persist Security Info = True”
缺少“Provider = SQLOLEDB.1;”在连接字符串中。
尝试创建“sql.udl”文件并测试不同的配置。