1

MVC4、EF5、コード ファースト、VS Express 2012、Win 7 Pro

を動かすと

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

Global.asax.cs の Application_Start に (xxxConfig. ファイルの前後で試しました)、次のエラー メッセージが表示されます。

ファイル 'D:\DevProj\MVC4Test\MVC4Tst\App_Data\aspnet-MVC4Test-20121123150620.mdf' をデータベース 'aspnet-MVC4Test-20121123150620' として添付できません

InitializeSimpleMembershipAttribute から正常に動作し、SSMS を介してすべての LocalDB データベースを削除しました。これは、すべてのデフォルトを使用する新しい MVC4 インターネット プロジェクトです (2 日前に VS 2012 Express をインストールしました)。編集された唯一のことは、プロジェクトから InitializeSimpleMembershipAttribute を除外し、AccountController でそれへの参照をコメントアウトして、WebSecurity.InitializeDatabaseConnection を移動することです。

どんな助けでも感謝します。

4

1 に答える 1

5

SimpleMembership DB は実行前に存在している必要があります

WebSecurity.InitializeDatabaseConnection("AccountDB", "UserProfile",
              "UserId", "UserName", autoCreateTables: true);

SM DB が作成されたら (たとえば、移行によって)、MVC4 でのベスト プラクティスは、Global.asax.cs の Application_Start セクションで WebSecurity への呼び出しをラップすることです。

 WebSecConfig.RegisterWebSec();

WebSecConfig.cs ファイルを App_Start フォルダーに配置します。

WebSecConfig.cs

using WebMatrix.WebData;

namespace MVC4Test
{
  public static class WebSecConfig
  {
    public static void RegisterWebSec() {
      WebSecurity.InitializeDatabaseConnection("AccountDB", "UserProfile",
              "UserId", "UserName", autoCreateTables: true);
    }
  }
}
于 2012-11-24T02:05:34.627 に答える