0

我有一个 ASP.NET MVC 应用程序,其中包含从项目模板生成的许多与成员资格相关的页面。

当我尝试访问其中一个页面时,我收到以下错误:

无法初始化 ASP.NET 简单成员资格数据库。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=256588

经过一段时间的研究,我确定我错过了连接字符串。我有一个名为的现有连接字符串FreeWebFilesEntities,我创建了一个名为 的新连接字符串DefaultConnection,并赋予它相同的值。

<connectionStrings>
    <add name="FreeWebFilesEntities" connectionString="metadata=res://*/FreeWebFilesRepository.csdl|res://*/FreeWebFilesRepository.ssdl|res://*/FreeWebFilesRepository.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=FreeWebFiles;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
    <add name="DefaultConnection" connectionString="metadata=res://*/FreeWebFilesRepository.csdl|res://*/FreeWebFilesRepository.ssdl|res://*/FreeWebFilesRepository.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=FreeWebFiles;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
<connectionStrings>

但它仍然不喜欢这样。我发现一些资源表明我正在使用 EF 连接字符串(我是)。我尝试删除它的元数据部分,但无论我做什么,它都会引发异常。

既然微软似乎决定不非常仔细地记录这个过程(如果有的话),有没有人弄清楚这一点?如何让 SimpleMembership 页面正常工作?

4

2 回答 2

3

好吧,对于初学者来说,您使用的是一个EntityClient连接字符串,它与SimpleMembership. SimpleMembership需要SqlClient提供者类型的连接字符串(即,它没有元数据并且提供者类型是SqlClient

其次,使用的连接字符串是在你的InitializeSimpleMembershipAttribute.cs类中设置的,特别是调用WebSecurity.InitializeDatabaseConnection. 您可以将其更改为您想要的任何内容。DefaultConnection 是 machine.config 中提供的默认连接字符串,默认情况下不会显示在您的 web.config 中。

于 2013-06-24T00:30:34.847 回答
-1

您的 web.config 文件中有这些部分吗?

<roleManager enabled="true" defaultProvider="simple">
  <providers>
    <clear/>
    <add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
  </providers>
</roleManager>
<membership defaultProvider="simple">
  <providers>
    <clear/>
    <add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
  </providers>
</membership>
于 2013-06-24T00:30:26.633 回答