我有一个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="Data Source=.;Initial Catalog=FreeWebFiles;Integrated Security=True;MultipleActiveResultSets=True"" 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="Data Source=.;Initial Catalog=FreeWebFiles;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
<connectionStrings>但它还是不喜欢这个。我找到了一些资源,这些资源表明我正在使用EF连接字符串(而且我正在使用)。我尝试删除它的元数据部分,但是,不管我做什么,它都会引发异常。
既然微软似乎决定不仔细地记录这个过程(如果有的话),那么有没有人知道这一点呢?如何使SimpleMembership页面工作?
发布于 2013-06-24 00:30:34
首先,您使用的是EntityClient连接字符串,它与SimpleMembership不兼容。SimpleMembership需要一个SqlClient提供程序类型连接字符串(即它没有元数据,而提供程序类型是SqlClient)。
其次,在InitializeSimpleMembershipAttribute.cs类中设置使用的连接字符串,特别是调用WebSecurity.InitializeDatabaseConnection的行。你可以把这个换成你想要的任何东西。DefaultConnection是machine.config中提供的默认连接字符串,在默认情况下不会出现在web.config中。
发布于 2013-06-24 00:30:26
您的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>https://stackoverflow.com/questions/17266322
复制相似问题