单击ASP.NET WebSite管理工具中的“安全”选项卡时,我一直收到以下错误。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
这正是我到目前为止所做的:
/App_Data
ASPNETDB.MDF
中创建数据库
Aspnet_regsql.exe -A all -E -d (mywebsitepath)/App_Data/ASPNETDB.MDF
我做错了什么?
答案 0 :(得分:4)
您需要在网站web.config文件中配置成员资格提供程序。请参阅以下示例并修改配置以满足您的要求。
<configuration>
<connectionStrings>
<add name="MySqlConnection" connectionString="Data
Source=MySqlServer;Initial Catalog=aspnetdb;Integrated
Security=SSPI;" />
</connectionStrings>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MySqlConnection"
applicationName="MyApplication"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true"
passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
</configuration>
有关详细信息,请参阅以下MSDN文章:
http://msdn.microsoft.com/en-us/library/6e9y4s5t(v=vs.100).aspx
http://msdn.microsoft.com/en-us/library/vstudio/1b9hw62f(v=vs.100).aspx
答案 1 :(得分:1)
如果您使用的是SQL Server而不是localDB,那么这是@codkemonkeh答案的扩展。
我的网站管理工具运行正常,直到我启用角色,此时我开始收到此错误。所以没有角色,我的应用程序运行正常,但启用了角色,我收到了这个错误。
如果未提供默认连接,则发现默认情况下Roles使用localDB sql连接。因为在我的情况下,我在SQL Server中存储用户登录(而不是在localDB中),我收到了这个错误。
This Microsoft help page完全准确地显示了如何为角色设置默认连接。
<roleManager enabled="true" defaultProvider="SqlRoleManager">
<providers>
<add name="SqlRoleManager"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="YOUR_CONNECTION_NAME"
applicationName="MyApplication" />
</providers>
</roleManager>
另请注意,defaultProvider =&#34; SQLRoleManager &#34;和name =&#34; SQLRoleManager &#34; ...&GT;应该是一样的。
除了@codemonkeh答案(上图)是正确的。这只是我遇到的额外问题。
答案 2 :(得分:0)
在我的HomeController上使用[InitializeSimpleMembership]之后,当我检查@if(User.IsInRole(“Administrators”))时,它解决了我的问题。“无法连接到SQL Server数据库”。
link:Role based authentication in the new MVC 4 Internet template using simplemembership