sql >> Database >  >> RDS >> Sqlserver

Fout bij automatisch maken van SQLExpress-databasebestand voor site die gebruikmaakt van AspNetSqlMembershipProvider, maar verbindingsreeks is naar SQL Server 2005

Volgens uw opmerking lijkt het erop dat u niet expliciet een rolprovider voor uw site heeft geconfigureerd.

Als alles wat in uw web.config staat is:

<roleManager enabled="true" />

Dan vertrouwt u op de standaardproviders die hoger in de configuratiehiërarchie zijn gedeclareerd (machine.config, global web.config, enz.)

In machine.config heb je waarschijnlijk zoiets als:

<roleManager>
  <providers>
    <add name="AspNetSqlRoleProvider" 
      connectionStringName="LocalSqlServer" 
      applicationName="/" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    <add name="AspNetWindowsTokenRoleProvider" 
      applicationName="/" 
      type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</roleManager>

Zoals je kunt zien, is de eerste provider geconfigureerd om een ​​connectionString te gebruiken met de naam LocalSqlServer - die meestal ook wordt gedeclareerd in de machine.config:

<add name="LocalSqlServer" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient"/>

En dit is ontworpen om een ​​lokale, op bestanden gebaseerde database te gebruiken die zal worden aangemaakt als deze nog niet bestaat.

Dus om rollen op uw site te laten werken, moet u uw root web.config wijzigen in iets als:

<roleManager enabled="true">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" 
      connectionStringName="YourConnectionStringName" 
      applicationName="/" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</roleManager>

Als u het element gebruikt, worden alle eerder gedefinieerde providers voor dat type verwijderd.



  1. Hoe schrijf je een java.sql.Array naar een java.sql.SQLOutput binnen SQLData.writeSQL() voor Oracle

  2. MySQL:voeg datetime in een ander datetime-veld in

  3. mysql - retourneer de eerste kolom eenmaal en alle bijbehorende kolomgegevens

  4. Vervolgkeuzelijst invullen vanuit MySQL-kolomgegevens