我使用asp.net 4、c# entity Framework4和asp.net成员资格。
我通常使用VS2010 CASSINI as来测试我的web应用程序。现在,我必须在本地将我的web应用程序移动到IIS 7。
我的应用程序在卡西尼上运行得很好,现在在IIS7上,当一些脚本试图访问asp.net成员资格表时,我得到了这个错误:
System.Web.Security.SqlRoleProvider' requires a database schema compatible with schema version '1'. However, the current database schema is not compatible with this version. You may need to either install a compatible schema with aspnet_reqsql.exe (available in the framework installation directory), or upgrade the provider to a newer version. Alright, my database was exactly the same and everything looked fine.我绑定了回收池和网站,但问题仍然存在。
你有什么想法吗?非常感谢您的时间,不是这个。
更新:
我在SQL脚本中找到了这一行: generate the DB ...可以连接吗?:
xp_cmdshell 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -E -S localhost -A mr -Q -d SiteNameExtension' -- mr = install Membership, Role Manager发布于 2011-10-11 16:41:44
我的sql安装脚本中的这一行创建了这个问题:
xp_cmdshell 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -E -S localhost -A mr -Q -d SiteNameExtension' -- mr = install Membership, Role Manager事实上,在我的Web.Configure中,aspnet_regsql.exe的目标并不是框架版本(它是4)。
将xp_cmdshell更新到正确的框架版本我解决了这个问题
发布于 2013-12-10 23:57:01
尝试使用正确版本的System.Web.Security.SqlRoleProvider更新web配置文件
您可以在c:/windows/microsoft.net/framework/v4.0.30319或任何其他版本中找到以下配置,您可以在那里找到配置文件。在其中检查机器配置文件以获取版本和公钥。
对于.net Fraowork4.0
<roleManager enabled="true" defaultProvider="SqlProvider">
<providers>
<clear/>
<add name="SqlProvider" connectionStringName="rolesDB" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>对于.net框架2.0
<roleManager enabled="true" defaultProvider="SqlProvider">
<providers>
<clear/>
<add name="SqlProvider" connectionStringName="rolesDB" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>https://stackoverflow.com/questions/7711303
复制相似问题