SQLnetworking接口,错误:26 – 错误定位服务器/实例指定

那么我有一个很大的问题,我试了几天解决,但我不能这样做,所以我需要你的帮助。 我在asp.net 4.0中有一个web应用程序,我实现了自定义成员资格和angular色提供程序。 当我打开它的应用程序主页连接到数据库并检索一些信息。 还有一个login表单,当我login它通过数据库validation用户,并将我redirect到保留页面,但出现此错误:

与SQL Serverbuild立连接时发生networking相关或特定于实例的错误。 服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。 (提供程序:SQLnetworking接口,错误:26 – 错误定位服务器/实例指定)

描述:

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

exception详情:

System.Data.SqlClient.SqlException:build立与SQL Server的连接时发生networking相关或实例特定的错误。 服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。 (提供程序:SQLnetworking接口,错误:26 – 错误定位服务器/实例指定)

源错误:

在执行当前Web请求期间生成未处理的exception。 有关exception的来源和位置的信息可以使用下面的exception堆栈跟踪来标识。

我尝试了很多东西,一些解决scheme,我发现在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> 

以下也是成员和angular色pipe理器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> 

请有人可以帮忙弄清楚什么是错的?

如果从Windows机器A连接到Windows机器B(安装了SQL Server的服务器),并且出现此错误,则需要执行以下操作:

在机器B上:

1.)打开名为“SQL Server Browser”的Windows服务并启动服务

2.)在Windows防火墙中,启用传入端口UDP 1434(如果机器A上的SQL Server Management Studio正在连接或机器A上的程序正在连接)

3.)在Windows防火墙中,启用传入端口TCP 1433(如果有telnet连接)

4.)在SQL Serverconfigurationpipe理器中,为端口1433启用TCP / IP协议

在这里输入图像描述

对我来说问题是DNSlogging是错误的…

以下这些certificate非常有帮助的内容很大程度上来自于这篇博文 。

这个错误信息实际上非常具体,解决scheme相当简单。

只有当您尝试连接到SQL Server命名实例时才会收到此错误消息。 对于一个默认实例,你永远不会看到这个,因为即使我们在这个阶段失败了(即错误定位服务器/实例指定),我们将继续尝试使用默认值连接,例如默认TCP端口1433,默认pipe道名称命名pipe道。

每次客户端连接到SQL Server命名实例时,我们都会发送一个SSRP UDP数据包到服务器的UDP端口1434.我们需要这一步来了解SQL实例的configuration信息,例如启用协议,TCP端口,pipe道名称等等。没有这个信息,客户端不知道如何连接,并且失败并显示这个错误信息。

总之,我们得到这个错误信息的原因是客户端堆栈无法接收来自SQL Browser的SSRP响应UDP数据包。 为了隔离确切的问题,请按照下列步骤操作:

  1. 确保您的服务器名称是正确的,例如名称上没有错字。

  2. 确保您的实例名称是正确的,并且目标机器上实际上有这样一个实例。 (请注意有些应用程序将转换为\)。

  3. 确保服务器机器可以访问,例如,DNS可以正确parsing,你可以ping服务器(不总是如此)。

  4. 确保SQL浏览器服务正在服务器上运行。

  5. 如果在服务器上启用了防火墙,则需要将sqlbrowser.exe和/或UDP端口1434置于exception。

有一个angular落的情况下,你可能仍然失败后,你检查步骤1至4.也可能发生在以下情况:

  1. 您的服务器是群集上或多宿主计算机上的命名实例
  2. 你的客户端是防火墙的Vista机器。

一个可以certificate有用的工具(它对我来说)是PortQry 。 如果这个命令返回信息并且它包含你的目标实例,那么你可以排除上面的可能性4)和5),这意味着你有一个SQL浏览器正在运行,并且你的防火墙不阻止SQL浏览器的UDP数据包。 在这种情况下,您可以检查其他可能的问题,例如不正确的连接string。

最后一点,使用SNAC时出现同样问题的错误消息是:[SQL Native Client] SQLnetworking接口:错误定位服务器/实例指定的[xFFFFFFFF]。

微软最近发布了一个引导漫步,可以作为一站式服务,解决SQL Server的大多数连接问题: 解决连接错误到SQL Server

答案是在错误信息本身:

 Error Locating Server/Instance Specified 

基本上,你在连接string中有错误的服务器\实例,即这个位:

 Data Source=MSSQL2008-1 

是错误的,而不是指向服务器,或者服务器名称不parsing为IP地址。 其他两种可能性:(1)运行SQL Server的SQL Server服务没有运行;(2)SQL框中的Windows防火墙(或其他防火墙)拒绝传入连接。

最终,如果服务器名是正确的,那么它变成了一个networking问题,你需要找出为什么客户端不能连接到服务器(这将是一个比SQL Serverconfiguration问题更可能是一个基本的networking问题) 。

我一直在遇到同样的问题,在我的ASP.NET MVC 4应用程序。

我解决它的方式是在DatabaseContext 。 通过传递我想通过基础构造函数使用的连接string的名称。

 public class DatabaseContext : DbContext { public DatabaseContext() : base("DefaultConnection") // <-- this is what i added. { } public DbSet<SomeModel> SomeModels { get; set; } } 

我们最近得到了同样的问题。 我们发现代码在machine.confg文件中查找名为“LocalSqlServer”的连接string。 我们添加了这一行,它工作正常。

我有这个问题,并修复它。 这个问题似乎是这样的:

错误:

 <add key="aaa" value="server=[abc\SQL2K8];database=bbb;uid=ccc;password=ddd;" /> 

 <add key="aaa" value="server=abc\SQL2K8;database=bbb;uid=ccc;password=ddd;" /> 

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

我有同样的错误,我开始了SQL Server Express服务,它的工作。 希望这可以帮助。

这个问题花了我一天,在我的ASP.NET MVC项目之一,幸运的是我有我的机器上的问题,而不是在生产环境,所以比较web.config我看到,并消除错误消失…一个真正的挑战将SQL Server错误26连接到此问题