【问题标题】:How to handle missing ASP Membership Database for Deployment/Checkout?如何处理缺少的 ASP 成员资格数据库以进行部署/结帐?
【发布时间】:2012-03-25 03:11:55
【问题描述】:

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

找不到存储过程“dbo.aspnet_CheckSchemaVersion”。

我不希望在每台机器上都运行 aspnet_regsql。有没有办法可以从 Global.asax 中的代码重新创建丢失的会员数据库?如果做不到这一点,将 aspnet_regsql 创建的初始数据库(.mdf 或脚本到 .sql)提交到源代码管理并将其部署到所有机器上是否安全?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多