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

ivi*_*iti 33 asp.net asp.net-membership roleprovider membership-provider sql-server-2008

好吧,我有一个很大的问题,我正在努力解决,但我无法做到,所以我需要你的帮助.我在asp.net 4.0中有一个Web应用程序,我实现了自定义成员资格和角色提供程序.当我打开应用程序主页时,它连接到数据库并检索一些信息.还有一个登录表单,当我登录时,它通过数据库验证用户并将我重定向到保留页面,但出现此错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

描述:

在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

例外细节:

System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

来源错误:

在执行当前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>
Run Code Online (Sandbox Code Playgroud)

以下是成员资格和角色管理器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>
Run Code Online (Sandbox Code Playgroud)

请任何人帮忙弄清楚什么是错的?

Mac*_*ver 45

如果从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 Server配置管理器中,为端口1433启用TCP/IP协议

在此输入图像描述


Pau*_*hra 18

对我来说问题是DNS记录错了......

以下证明非常有用,主要来自这篇博客文章.

此错误消息实际上非常具体,解决方案非常简单.

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

每次客户端连接到SQL Server命名实例时,我们都会将SSRP UDP数据包发送到服务器端口UDP端口1434.我们需要此步骤来了解SQL实例的配置信息,例如,启用的协议,TCP端口,管道如果没有此信息,客户端不知道如何连接,它将失败并显示此错误消息.

总之,我们收到此错误消息的原因是客户端堆栈无法从SQL浏览器接收SSRP响应UDP数据包.为了隔离确切的问题,请按照以下步骤操作:

  1. 确保您的服务器名称正确,例如,名称上没有拼写错误.

  2. 确保您的实例名称正确,并且目标计算机上确实存在此类实例.(请注意,某些应用程序将\转换为\).

  3. 确保服务器计算机可以访问,例如,DNS可以正确解析,您可以ping服务器(并非总是如此).

  4. 确保SQL Browser服务正在服务器上运行.

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

在检查步骤1到4之后,您可能仍然会遇到一个角落情况.在以下情况下也可能发生这种情况:

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

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

最后,当您使用SNAC时,同一问题的错误消息是:[SQL Native Client] SQL网络接口:错误查找指定的服务器/实例[xFFFFFFFF].

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


Chr*_*s J 7

答案在错误消息本身中:

Error Locating Server/Instance Specified
Run Code Online (Sandbox Code Playgroud)

基本上,你在连接字符串中有错误的server\instance,即这个位:

Data Source=MSSQL2008-1
Run Code Online (Sandbox Code Playgroud)

是错误的,没有指向服务器,或者servername没有解析为IP地址.另外两个可能性:(1)运行SQL Server的框上的SQL浏览器服务未运行或(2)SQL框上的Windows防火墙(或其他防火墙)拒绝传入连接.

最终,如果服务器名称是正确的,那么它就会变成网络问题,你需要找出客户端无法连接到服务器的原因(这将比SQL Server配置问题更可能是一个基本的网络问题) .


Kri*_*sen 7

我在ASP.NET MVC 4应用程序中遇到了同样的问题.

我解决它的方式是在DatabaseContext.通过基础构造函数传递我想要使用的连接字符串的名称.

public class DatabaseContext : DbContext
{ 
    public DatabaseContext()
        : base("DefaultConnection") // <-- this is what i added.
    {
    }

    public DbSet<SomeModel> SomeModels { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

转到window + R并键入services.msc,然后按Enter。

如果没有自动启动,请手动启动SQL Server。

然后您尝试登录,它一定可以正常工作。


eme*_*117 5

如果您使用的是 SQL Server 开发版,请将连接字符串中的“.\SQLEXPRESS”更改为您的计算机名称。

前:

数据源=.\SQLEXPRESS;初始目录=SchoolDB-EF6CodeFirst;集成安全性=True;MultipleActiveResultSets=True

后:

数据源=DESKTOP-DKV41G2;初始目录=SchoolDB-EF6CodeFirst;集成安全性=True;MultipleActiveResultSets=True