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数据包.为了隔离确切的问题,请按照以下步骤操作:
确保您的服务器名称正确,例如,名称上没有拼写错误.
确保您的实例名称正确,并且目标计算机上确实存在此类实例.(请注意,某些应用程序将\转换为\).
确保服务器计算机可以访问,例如,DNS可以正确解析,您可以ping服务器(并非总是如此).
确保SQL Browser服务正在服务器上运行.
如果在服务器上启用了防火墙,则需要将sqlbrowser.exe和/或UDP端口1434置于异常中.
在检查步骤1到4之后,您可能仍然会遇到一个角落情况.在以下情况下也可能发生这种情况:
一个可以证明有用的工具(它对我有用)是PortQry.如果此命令返回信息并且它包含您的目标实例,那么您可以排除上面的可能性4)和5),这意味着您确实运行了SQL浏览器并且您的防火墙不会阻止SQL Browser UDP数据包.在这种情况下,您可以检查其他可能的问题,例如错误的连接字符串.
最后,当您使用SNAC时,同一问题的错误消息是:[SQL Native Client] SQL网络接口:错误查找指定的服务器/实例[xFFFFFFFF].
Microsoft最近发布了一个引导式漫游,可以作为一站式服务来解决SQL Server的大多数连接问题:解决SQL Server的连接错误
答案在错误消息本身中:
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配置问题更可能是一个基本的网络问题) .
我在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)
如果您使用的是 SQL Server 开发版,请将连接字符串中的“.\SQLEXPRESS”更改为您的计算机名称。
前:
数据源=.\SQLEXPRESS;初始目录=SchoolDB-EF6CodeFirst;集成安全性=True;MultipleActiveResultSets=True
后:
数据源=DESKTOP-DKV41G2;初始目录=SchoolDB-EF6CodeFirst;集成安全性=True;MultipleActiveResultSets=True
| 归档时间: |
|
| 查看次数: |
205494 次 |
| 最近记录: |