几个小时以来,我一直试图找到确切的问题,但到目前为止,我只是无法弄清楚可能出了什么问题。
我有一个 WPF 应用程序尝试使用此连接字符串连接到远程 SQL Server:
<connectionStrings>
<add name="MyDBEntities"
connectionString="metadata=res://*/MyModel.MyDBModel.csdl|res://*/MyModel.MyDBModel.ssdl|res://*/MyModel.MyDBModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=server1\instance1,56482;Initial Catalog=DB_MyTool;User ID=MyTool_admin;Password=MyPass;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
...我得到以下内部异常:
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)
好吧,我想我们都知道这个问题并且可能的解决方案:检查服务器是否在线(顺便说一下,它是一个数据中心)、协议、TCP/IP、防火墙……
但这是线索:
我在使用严格预配置客户端的公司网络上
其中一个客户端,我正在开发的客户端,能够使用这个应用程序连接到服务器(我只是将整个项目解决方案复制到其他客户端)
该错误发生在所有其他客户端上,即使具有管理员权限
我从连接字符串中获取了确切的数据,并在其他客户端上使用 Microsoft SQL Management Studio 成功连接(应用程序不起作用)
我写了一个小控制台工具来测试其他客户端上“第三方软件”的连接性,它也成功了
这导致了一些结论:
- 不能是服务器,因为 Management Studio 可以连接
- 它不能是应用程序,因为它可以在另一个客户端上运行
- 它不可能是连接字符串,因为我用我的小工具测试了它
那么,谁能告诉我可能是什么问题?
要么是我的应用程序和客户端配置的奇怪混合,要么我完全愚蠢。
提前致谢!