嗯,我有一个大问题,我正在努力解决数天,但我做不到,所以我需要您的帮助。我在asp.net 4.0中有一个Web应用程序,在其中实现了自定义成员资格和角色提供程序。当我打开应用程序主页时,它会连接到数据库并检索一些信息。还有一个登录表单,当我登录时,它通过数据库验证用户并将我重定向到保留页面,但出现此错误:
与网络相关或特定于实例的错误发生在建立与SQL Server的连接。找不到服务器或无法访问。验证实例名称正确,并且SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26-错误定位服务器/实例指定)
描述:
[当前执行期间发生未处理的异常网络请求。请查看堆栈跟踪以获取有关的更多信息错误及其在代码中的起源。
异常详细信息:
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>
下面还有成员资格和角色管理器的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。)打开Windows服务“ SQL Server Browser”并启动该服务
2。)在Windows防火墙中,启用传入端口UDP 1434(如果正在连接计算机A上的SQL Server Management Studio或正在连接计算机A上的程序)
3。)在Windows防火墙中,启用传入端口TCP 1433(如果存在telnet连接)
4。)在SQL Server配置管理器中,为端口1433启用TCP / IP协议
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9McXZmUy5qcGcifQ==” alt =“在此处输入图像描述”>
此问题是由于DNS无法解析主机名引起的。尝试使用IP地址而不是“计算机名”。
在我的实例中,web.config文件中的connectionString的名称拼写错误。这是实体框架使用的数据库上下文的名称。我猜这是当EF无法将connectionString名称与上下文匹配时出现的错误。
就我而言,我正在寻找服务。然后找到一个名为“ SQL Server(SQLEXPRESS)的服务。然后右键单击该服务。选择属性。然后单击启动。就这样。解决了这个问题。
这个问题花了我大约一天的时间,在我的一个ASP.NET MVC项目中,我在机器上而不是在生产环境中遇到了问题,因此比较web.config可以看到并消除了错误消失的可能性... a真正的挑战将SQL Server错误26连接到此问题
相同的问题。就我而言,我解决了将项目设置为“启动项目”的问题。
如果使用的是SQL Server开发人员版,请在连接字符串中将“。\ SQLEXPRESS”更改为您的计算机名。
之前:
Data Source =。\ SQLEXPRESS; Initial目录= SchoolDB-EF6CodeFirst;集成安全= TRUE; MultipleActiveResultSets =真
后:
数据源= DESKTOP-DKV41G2;初始目录= SchoolDB-EF6CodeFirst;集成安全= TRUE; MultipleActiveResultSets =真
对我来说,问题是DNS记录有误...
以下被证明非常有帮助的内容,大部分来自this blog post。
此错误消息实际上非常具体,解决方案也很简单。
仅当您尝试连接到SQL Server命名实例时,您会收到此错误消息。对于默认实例,您永远不会看到它,因为即使我们在此阶段失败(即,错误地指定了服务器/实例的位置),我们仍将继续尝试使用默认值进行连接,例如默认TCP端口1433,命名管道的默认管道名称。
[每次客户端连接到SQL Server命名实例时,我们都会将SSRP UDP数据包发送到服务器计算机的UDP端口1434。我们需要此步骤来了解SQL实例的配置信息,例如启用的协议,TCP端口,管道名称等。如果没有此信息,客户端将不知道如何连接,并且此错误消息将失败。
简而言之,我们收到此错误消息的原因是客户端堆栈无法从SQL浏览器接收SSRP响应UDP数据包。为了找出确切的问题,请按照以下步骤操作:
请确保您的服务器名称正确,例如,该名称上没有错字。
请确保您的实例名称正确,并且目标计算机上实际上存在这样的实例。 (请注意,某些应用程序将\转换为。)
确保服务器计算机可访问,例如,DNS可以正确解析,您可以ping服务器(并非总是true)。
确保SQL Browser服务正在服务器上运行。
如果服务器上启用了防火墙,则需要将sqlbrowser.exe和/或UDP端口1434放入例外。
在一个极端的情况下,您在检查了步骤1至4后仍然可能失败,并且在以下情况下也可能发生:
可以证明是有用的工具(对我有用)是PortQry。如果此命令返回信息,并且包含目标实例,则可以排除上述4)和5)的可能性,这意味着您确实在运行SQL Browser,并且防火墙不会阻止SQL Browser UDP数据包。在这种情况下,您可以检查其他可能的问题,例如不正确的连接字符串。
最后,使用SNAC时,同一问题的错误消息是:[SQL Native Client] SQL网络接口:错误定位指定的服务器/实例[xFFFFFFFF]。
Microsoft最近发布了一个指导性的演练,可以作为一站式服务来解决与SQL Server的大多数连接问题:Solving Connectivity errors to SQL Server
答案在错误消息本身中:
Error Locating Server/Instance Specified
基本上,您在连接字符串中有错误的服务器\实例,即此位:
Data Source=MSSQL2008-1
错误,没有指向服务器,或者服务器名不能解析为IP地址。其他两种可能性:(1)运行SQL Server的盒子上的SQL Browser服务未运行,或者(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; }
}
转到窗口+ R并键入services.msc,然后按Enter。
如果未自动启动,请手动启动SQL Server。
然后您尝试登录,它一定可以使用。
我有相同的错误,并且我启动了SQL Server Express服务,并且可以正常工作。希望这会有所帮助。
更改您的。\ SQLEXPRESS,并仅添加您的SQL Express名称,它对我有用
<add name="BlogDbContext" connectionString="data source=your name here; initial catalog=CodeFirstDemo; integrated security=True" providerName="System.Data.SqlClient"/>
我们最近遇到了同样的问题。我们发现该代码正在machine.confg文件中寻找名为“ LocalSqlServer”的连接字符串。我们添加了这一行,它工作正常。
我有此问题,并已解决。问题似乎是这样的:
错:
<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;" />