過去に私はASPNETDB.mdfファイルが既に削除されていても再作成するのとほぼ同じ問題がありました。これは、ASP.NETアイデンティティのインスタンスは、以下の行を持っているプロジェクト以外machine.config
ファイルを使用していることになります:
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
およびコンフィギュレーションファイルの最後に私がMembership
プロバイダの動作を制御するようだmembership
要素、見つかった:
を
<system.web>
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
</system.web>
connectionStringName="LocalSqlServer"
は、前にconnectionStrings
要素に示すように、ASPNETDB.mdfを参照しています。上記
<roleManager enabled="true">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
線がASP.NETメンバーシッププロバイダは無効に現在のユーザ管理として有効であることを告げる:
次に、プロジェクト内のweb.configファイルに、この行はRoleManager
インスタンスが有効であるか否かを判断しますASP.NETアイデンティティの目的。
ASPNETDB.MDFデータベースが有効にされ& Membership
プロバイダサポートを存在されていない場合したがって、Membership
プロバイダは、Machine.configでデフォルト設定を使用して初期化し、自動的にデフォルトのテーブル定義を使用してASPNETDB.MDF、そのログファイルを生成します。そのDBの再作成を防止するために
は、<roleManager enabled="false">
を変更するだけでなく、あなたは、web.configファイルにこれらのステップを使用することができます。
既存のクリアまたは事前に定義された接続文字列あなた自身を定義する前に。
<connectionStrings>
<clear />
<remove name=LocalSqlServer /> <== this is maybe optional
<add name="ZZZ_SpringContext"
connectionString="Data Source=mypc\sql2012;Initial Catalog=ZZZ_Spring;Integrated Security=True;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
モジュール定義のRoleManager
プロバイダを削除します。
<modules>
<remove name="RoleManager" />
</modules>
そうにコメントアウトすべてmembership
、profile
& roleManager
要素を必要に応じて。
アカウントモデルコードにUsersContext
クラスがある場合は、自分で定義した現在の接続文字列を指していることを確認してください。
public class UsersContext : DbContext
{
public UsersContext() : base("ZZZ_SpringContext")
{
}
}
関連問題:
How do I stop using ASPNETDB.MDF in LocalDB?(Webフォーム版)
たぶんASPNETアイデンティティ? Visual StudioまたはSSMSを使用してデータベースを開いたとき、どのテーブルが表示されますか? – maxbeaudoin
@maxbeaudoin私はIDを使用していますが、すべてのテーブルはweb.configで定義されたdbにあります。私はASPNETDB.MDF dbの内容を見ることができませんでした。私は私のプロジェクトにそれを含め、オープンに行きました、そして、 "このdbファイルはSQL Serverの現在のインスタンスと互換性がありません。"私はそれを削除し、アプリを実行するたびに、それは再作成されます。 – WebDevGuy2
web.configのconnectionStringsセクションを含めることはできますか? – maxbeaudoin