0

我为我的 aspnet 数据库生成了一个脚本,现在当我尝试使用该数据库时,它给出了一个错误

“System.Web.Security.SqlMembershipProvider”需要与架构版本“1”兼容的数据库架构。但是,当前的数据库架构与此版本不兼容。您可能需要使用 aspnet_regsql.exe(可在框架安装目录中获得)安装兼容架构,或将提供程序升级到较新版本。

我真的有什么选择来解决这个问题?我是否需要运行 aspnet_regsql.exe 或者除了必须按照错误提示使用此选项之外,还有其他方法可以解决此错误吗?

我的 web.config 文件如下所示:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>
</compilation>

<membership defaultProvider="SqlProvider">
  <providers>
    <clear/>
    <add name="SqlProvider"
         type="System.Web.Security.SqlMembershipProvider"
         connectionStringName="CPMS_DB"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="true"
         requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="3"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="3"
         applicationName="/"/>
  </providers>
</membership>
<profile>
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider"
         type="System.Web.Profile.SqlProfileProvider"
         connectionStringName="ApplicationServices"
         applicationName="/"/>
  </providers>
</profile>
<roleManager enabled="true">
  <providers>
    <clear />
    <add connectionStringName="ApplicationServices" 
         applicationName="/"
      name="AspNetSqlRoleProvider" 
         type="System.Web.Security.SqlRoleProvider" />
    <add applicationName="/" 
         name="AspNetWindowsTokenRoleProvider"
      type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>

4

2 回答 2

0

我会使用 aspnet_regsql.exe 创建一个新的/空白数据库。

然后你可以使用这个:

http://granadacoder.wordpress.com/2007/11/29/membershipprovider-helper-to-transfer-data/

它将“创建 tsql 代码”,因此您可以将所有数据移动到空白数据库中。

于 2013-10-11T20:54:53.333 回答
0

我有类似的错误,“简单”的解决方案,如关闭项目并重新打开、重建,解决了错误。那就是如果你确定你做的一切都是正确的

于 2021-01-07T15:48:05.103 回答