我创建了一个新的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文件,然后回到登录页面。现在抛出异常。
你有没有想过这个想法? – Eonasdan
@Eonasdan,一年后,是的。请看我的答案。 – joelmdev