SQL网络接口错误:26 - 找不到指定的服务器/实例。

52

我有一个大问题,尝试了好几天都无法解决,所以需要你的帮助。我有一个asp.net 4.0的web应用程序,其中实现了自定义成员身份验证和角色提供程序。当我打开应用程序主页时,它会连接到数据库并检索一些信息。还有一个登录表单,当我登录时,它通过数据库验证用户,并将我重定向到保留页面,但是此时出现了以下错误:

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

描述:

当前 Web 请求执行期间发生未处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及代码中的错误来源。

异常详细信息:

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

源代码错误:

当前 Web 请求执行期间生成了一个未处理的异常。您可以使用下面的异常堆栈跟踪识别出异常的起源和位置。

我尝试了很多方法,在stackoverflow上找到了一些解决方案,但什么都没有用。这是我的连接字符串:

<connectionStrings>
  <clear/>
  <remove name="LocalSqlServer"/>
     <add name="LocalSqlServer" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient" />
     <add name="AgencyConn" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient"/>
</connectionStrings>

以下是成员资格和角色管理器的Web.config部分:

<membership defaultProvider="AuthProvider">
  <providers>
    <clear/>
      <add name="AuthProvider" type="AuthenticationProvider" applicationName="~/Reserved/" connectionStringName="AgencyConn"/>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <clear/>
      <add name="MyRoleProvider" type="RoleAccessProvider" connectionStringName="AgencyConn"/>
  </providers>
</roleManager>

请问有人能帮忙找出问题所在吗?


检查您项目中的所有connectionStrings。您可能不仅会看到一个正确的connectionString,还可能会看到另一个不正确的connectionString。在您的项目中“检查所有connectionStrings”。 - Jogi
我遇到了同样的问题,对我来说,问题是我的 MySQL 服务器实例正在侦听某个不同的端口,而我没有在连接字符串中指定端口号。连接字符串=服务器=数据库服务器,端口 - Sachin Vishwakarma
请查看此处定位服务器/实例指定错误 - Andile
讨厌SO关闭这种类型的问题。这是一个程序员遇到的问题,许多其他程序员也经历过。SO不希望这个人得到任何帮助! - Paul McCarthy
19个回答

1
这个问题是由DNS无法解析主机名造成的。尝试使用IP地址而不是“计算机名称”。

我刚刚使用了一个IP地址,但无法连接。该IP可以ping通,但是当将“. \ [实例名称]”更改为“[ip] \ [实例名称]”时,无法从远程甚至本地计算机连接到SQL服务器。 - QMaster

1
在我的情况下,我搜索了一些服务。然后发现了一个名为“SQL Server(SQLEXPRESS)”的服务。然后右键单击该服务。选择属性。然后点击启动。就这样。问题解决了。

1
我们最近遇到了同样的问题。我们发现代码在机器配置文件中寻找名为“LocalSqlServer”的连接字符串。我们添加了这行代码,现在它可以正常工作了。

1

这不是一个大问题,只需要更改你的服务器名称,请查看如何更改服务器名称:

enter image description here

如何找到服务器名称

  1. 打开运行窗口
  2. 输入'cmd'
  3. 在控制台窗口中输入"Hostname"。

您的服务器名称将会显示出来

谢谢。


0

同样的问题。在我的情况下,我通过将项目设置为“启动项目”来解决了这个问题。


0
这个问题花了我大约一天的时间,在我的一个ASP.NET MVC项目上,幸运的是这个问题出现在我的机器上而不是生产环境中,所以通过比较web.config文件,我发现并删除了其中的错误,问题就消失了...将SQL Server错误26与这个问题联系起来真是一个真正的挑战。

0
原来这台机器上安装了两个版本的SQL Server。
删除旧的版本解决了我的问题。
更多细节:
在启动过程中,两个服务的服务都在尝试运行。
并且先加载的那个可以正常工作,并阻止第二个开始运行。
P.S. 停止第一个服务器的服务并手动启动第二个也不起作用。

0
打开SQL Server配置管理器,在SQL Server服务下,通过右键单击并点击启动,启用SQL Server状态,如果它已停止。

0

遇到同样的问题后,我使用了不带./的连接字符串(比如使用DESKTOP-E53DUML而不是./DESKTOP-E53DUML


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接