新しい ASP.NET MVC 4 アプリケーションを作成しましたが、最初にコードを使用したいと考えています。ただし、データベース ファイルがまだ存在しない場合、最初にデータベース ファイルを作成するようには見えません。App_Data フォルダーから .mdf ファイルを削除すると、アプリがデータベースにアクセスしようとすると、次の例外が発生します。
System.Data.SqlClient.SqlException: Cannot attach the file '<path-to-db-file>.mdf' as database '<my-db-file-name>'.
デバッガーのアプリで実行すると、LazyInitializer.EnsureInitialized を呼び出すときに、InitializeSimpleMembershipAttribute::OnActionExecuting メソッドで例外が発生していることがわかります。キャッチされた例外は次のとおりです。
[System.Reflection.TargetInvocationException] {"Exception has been thrown by the target of an invocation."} System.Reflection.TargetInvocationException
内部例外:
[System.InvalidOperationException] {"The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588"} System.InvalidOperationException
次に、その内部例外として上で述べた最初の例外があります。
私が間違っていることはありますか?
アップデート
真新しいMVC4アプリで試してみました。次のようにして複製できます。
- VS ウィザードで MVC アプリを作成します。
- アプリを初めて実行し、ログイン ページに移動します (mdf ファイルが生成されることに注意してください)。
- mdf ファイルを削除し、ログイン ページに戻ります。例外がスローされるようになりました。