在 VS 2012 中,我从 Internet 应用程序模板开始创建了一个新的 MVC 4 项目,然后将其属性更改为使用 SQL Server Express 而不是 LocalDB,然后尝试成功注册新用户。
首先,项目在文件夹中创建了自己的成员数据库App_data
,但出于部署原因我想更改数据库位置,所以我将数据库物理文件从 移动C:\MyProject\App_Data\
到C:\MyData
并修改了文件中的相关路径web.config
。为了确保 SQL Server Express 实例可以访问数据库,我在属性安全选项卡中添加了我自己的具有完全访问权限的用户帐户,然后在 SQL Server Management Studio 中成功显示了它的数据。
现在,当我运行项目并单击“登录”链接时,调试器停止LazyInitializer.EnsureInitialized
并失败并出现错误;错误消息的内部异常说:
数据库“C:\MyProject\App_Data\aspnet-MyProject-20121206123456.mdf”已经存在。选择不同的数据库名称。
无法将文件“C:\MyData\aspnet-MyProject-20121206123456.mdf”附加为数据库“aspnet-MyProject-20121206123456.mdf”
我检查了所有项目以找到任何不同的数据库连接设置,但一无所获。
在VS中,当我使用服务器资源管理器查看数据库表数据时,当我右键单击其中一个显示的表时,我找不到“显示数据”选项,当我转到C:\MyData\
文件夹查看物理数据库文件属性时,在安全选项卡,我发现每次运行项目时,我使用完全访问权限的帐户都被删除了。
浏览器还显示下一个异常文本:
The data provider. Net Framework requested was not found. It may not be installed.
C:\MyProject\Filters\InitializeSimpleMembershipAttribute.cs Ligne : 42
Ligne 40 : }
Ligne 41 :
Ligne 42 : WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
Ligne 43 : }
Ligne 44 : catch (Exception ex)