c# / SQL Server: "定位服务器/实例指定错误"在一个应用程序中

本文关键字:quot 错误 应用程序 一个 实例 Server SQL 定位 服务器 | 更新日期: 2023-09-27 18:15:06

我一直在试图找到确切的问题,这几个小时,但到目前为止,我只是不能找出什么可能是错误的。

我有一个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=&quot;Data Source=server1'instance1,56482;Initial Catalog=DB_MyTool;User ID=MyTool_admin;Password=MyPass;MultipleActiveResultSets=True&quot;" 
        providerName="System.Data.EntityClient" />
</connectionStrings>

…我得到以下内部异常:

在建立到SQL Server的连接时发生了与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名是否正确,SQL Server是否配置为允许远程连接。(provider: SQL Network Interfaces, error: 26 - error locations Server/Instance Specified)

好吧,我想我们都知道这个问题和可能的解决方案:检查服务器是否在线(顺便说一下,它是一个数据中心),协议,TCP/IP,防火墙,…

但是这里有个提示:

  • 我在公司网络上使用严格预配置的客户端

  • 其中一个客户端,我正在开发的一个,能够连接到服务器与这个非常应用程序(我只是复制了整个项目解决方案到其他客户端)

  • 错误发生在所有其他客户端,即使具有Admin权限

  • 我从连接字符串中获取了确切的数据,并在其他客户端上使用Microsoft SQL Management Studio成功连接(应用程序不工作)

  • 我写了一个小的控制台工具来测试"第三方软件"在其他客户端的连通性,它也成功了

这引出了几个结论:

  • 不可能是服务器,因为Management Studio可以连接
  • 它不可能是应用程序,因为它在另一个客户端上工作
  • 它不可能是连接字符串,因为我用我的小工具
  • 测试了它

那么,谁能告诉我问题是什么?

要么是我的应用程序和客户端配置的奇怪混合,要么是我完全愚蠢。

提前感谢!

c# / SQL Server: "定位服务器/实例指定错误"在一个应用程序中

它不可能是连接字符串,因为我用我的小工具

测试了它

一些工具接受不同的虚拟服务器连接字符串。

# This syntax works for my Python and Perl ODBC Drivers:
Data Source=server1'instance1;Port=56482;
# This syntax works for my JDBC jTDS driver:
Data Source=server1:56482;instance=instance1;

也许您想尝试JDBC语法?

我是一个白痴。

问题是我改变了位于项目文件夹的。config文件中的连接字符串,但不是'bin'Debug文件夹中的连接字符串,当然,我在其他客户端之一测试时启动了。exe文件。

每当我在我开发的计算机上重新构建我的解决方案时,这个.config文件都会被覆盖。因为我需要在开发人员的计算机上的另一个连接字符串,使用的连接字符串不可能是正确的任何客户端。我从来没想过要检查编译后的app.config文件。

我希望把这篇文章留在这里,有一天能帮助到像我这样迫切需要有人教他如何使用Visual Studio的人。

谢谢你的努力。