Entity Framework で利用できる移行機能について学習していますが、問題が発生しているようです。インターネット アプリケーション プロジェクト テンプレートと有効なエンティティ フレームワークの移行などを使用する場合、自動移行を使用して、データベースにデフォルト ユーザーを作成しようとしています。
protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context)
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "Email", false);
if (!WebSecurity.UserExists("ahicks2"))
{
WebSecurity.CreateAccount("ahicks2", "password", requireConfirmationToken:true);
}
if (!Roles.RoleExists("Admin"))
{
Roles.CreateRole("Admin");
}
}
パッケージ マネージャーで「Update-Database -verbose」を実行すると、次のエラーが表示されます。
シード メソッドを実行します。System.Web.Security.MembershipCreateUserException: プロバイダーで不明なエラーが発生しました。
WebMatrix.WebData.SimpleMembershipProvider.CreateAccount (文字列のユーザー名、文字列のパスワード、ブール値の requireConfirmationToken) で WebMatrix.WebData.WebSecurity.CreateAccount (文字列のユーザー名、文字列のパスワード、ブール値の requireConfirmationToken) で
スタック トレースの次の行はConfiguration.Seed
呼び出しです。私のWeb構成では、メンバーシッププロバイダーに次の設定を使用して、必要なデータベースにテーブルが作成されることを保証しています:
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<clear/>
<add name="DefaultMembershipProvider"
type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection"/>
データベース テーブルは正しく作成されていますが、コードは create ユーザーに当てはまります。誰でも助けることができますか?シンプルなものだと確信しています。私はこれらの機能をテストしたいと思いました - もちろん簡単な答えは、asp.net 2.0 のメンバーシップ プロバイダーを使用するように戻すことです! しかし、私はこれを機能させたいと思っていました。どんな助けでも大歓迎です。
編集:ちなみに、私はこれを試しました: http://forums.asp.net/t/1598261.aspx/1この問題は解決しません。