如何处理缺少的ASP成员资格数据库进行部署/检查?

时间:2012-03-25 03:11:56

标签: asp.net-mvc-3 asp.net-membership

我有一个使用SQL Server 2012 LocalDB的ASP MVC 3应用程序。我没有将成员资格数据库aspnetdb.mdf提交给源代码控制(Mercurial),因此当我将项目签出或部署到新计算机时,我收到以下错误:

  

无法找到存储过程'dbo.aspnet_CheckSchemaVersion'。

我不想在每台机器上运行aspnet_regsql。有没有办法可以从Global.asax中的代码重新创建缺少的成员资格数据库?如果不这样做,将aspnet_regsql创建的初始数据库(.mdf或脚本到.sql)提交到源代码控制并将其部署到所有机器是否安全?

1 个答案:

答案 0 :(得分:2)

似乎无法在.NET中创建它,所以我最终只创建了默认的成员资格数据库:

"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe" -E -S (localdb)\v11.0 -d aspnetdb -A mr

这将在aspnetdb.mdf中创建C:\Users\USERNAME。然后我将其复制到我的解决方案中的部署文件夹并将其添加到版本控制。最后一步是向我的web项目添加一个构建事件,如果它不存在,它将复制数据库。

if not exist ("$(ProjectDir)App_Data\aspnetdb.mdf") copy "$(SolutionDir)_Deployment\aspnetdb.mdf" "$(ProjectDir)App_Data"