我使用asp.net 4 c#entity framework 4和asp.net成员资格。
我通常使用VS2010 CASSINI来测试我的Web应用程序..现在我必须将我的Web应用程序移动到IIS 7本地。
我的应用程序在Cassini上运行得很好,现在在IIS 7上,当某些脚本尝试访问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脚本中找到了这一行,生成了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
答案 0 :(得分:0)
我的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
事实上,aspnet_regsql.exe并没有像我的Web.Configure那样定位框架版本(它是4)。
更新xp_cmdshell o正确的Framework版本我解决了问题
答案 1 :(得分:0)
尝试使用正确版本的System.Web.Security.SqlRoleProvider更新Web配置文件
您可以在c:/windows/microsoft.net/framework/v4.0.30319或任何其他版本中找到以下配置,您可以在那里找到配置文件。进入它检查机器配置文件 得到版本&公钥。
对于.net frameowork 4.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>
for .net framework 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>