'System.Web.Security.SqlMembershipProvider'需要与架构版本'1'兼容的数据库架构

时间:2009-03-17 03:57:12

标签: .net sql-server sql-server-2005-express profiles

我想使用配置文件,并且能够使用aspent_regsql -A p来安装表。我可以在SQL管理工作室中看到它们。

我实际上正在使用SQLExpress 2005,并填充了我的dbo.aspnet_SchemaVersions。有人知道会出现什么问题吗?

顺便说一下,我很确定我的连接字符串和应用程序代码都没问题。 提前谢谢。

    

<system.web>
<membership>

  <providers>

    <remove name="AspNetSqlMembershipProvider" />

    <add name="AspNetSqlMembershipProvider"

      type="System.Web.Security.SqlMembershipProvider,

       System.Web, Version=2.0.0.0, Culture=neutral,                                

       PublicKeyToken=b03f5f7f11d50a3a"

      connectionStringName="RGConnectionString" />

  </providers>

</membership>
<profile>
  <providers>
    <add name="ProfileProvider" type="System.Web.Security.SqlProfileProvider,

       System.Web, Version=2.0.0.0, Culture=neutral,                                

       PublicKeyToken=b03f5f7f11d50a3a"

      connectionStringName="RGConnectionString"/>
  </providers>

2 个答案:

答案 0 :(得分:5)

嗯,傻瓜我。我很确定这是SQLExpress数据库的一个问题,但实际上我的web.config文件非常奇怪。我通过向提供者添加正确的属性来实现它:

  <connectionStrings>
    <add name="RGConnectionString"
         connectionString="Data Source=(local)\SQLExpress;Initial Catalog=aspnetdb;Integrated Security=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>

    <membership>
      <providers>
        <remove name="AspNetSqlMembershipProvider" />
        <add name="AspNetSqlMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="RGConnectionString" 
             enablePasswordRetrieval="true"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="true"
             requiresUniqueEmail="true"
             passwordFormat="Clear"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="8"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="10"
             passwordStrengthRegularExpression="" 
             applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <add name="ProfileProvider"
             type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="RGConnectionString"
             applicationName="/" />
      </providers>
    </profile>

  </system.web>

答案 1 :(得分:3)

如果您编写数据库脚本而不填充[aspnet_SchemaVersions]表,则可能会发生这种情况。此表包含有关成员资格表模式的信息。如果此表为空,您将看到有关成员资格版本的错误。