【问题标题】:Deploy without dbDacFx with Visual Studio使用 Visual Studio 在不使用 dbDacFx 的情况下进行部署
【发布时间】:2013-12-16 15:29:47
【问题描述】:

我有一个 Asp.Net MVC 5 网站。我之前发布过很多 PHP 网站,但这是我第一次尝试部署 Asp.Net MVC 网站。以下是我部署网站的步骤:

  1. 我进入了主机面板,创建了一个网站并更改了其设置。
  2. 我创建了一个数据库用户和一个数据库,并将该用户添加到该数据库中。
  3. 然后我转到名为“Web Publishing”的选项卡并单击下载此网站的发布配置文件
  4. 进入Visual Studio,右键单击项目名称,单击“发布”选项,然后导入下载的文件。点击下一步,但数据库的连接字符串不存在。
  5. 我用 Notepad++ 打开了文件并将连接字符串复制到我的数据库上下文中。单击两个复选框“使用此连接...”和“首先执行代码迁移...”。在另一个连接上,“更新数据库”和“使用...”
  6. 我运行了发布,但失败并显示以下消息:

Unable to perform the operation. Please contact your server administrator to check authorization and delegation settings.

你认为问题是什么?

另外,有没有一种方法可以让我使用 Visual Studio 所做的所有配置(例如捆绑 CSS 和 JS 文件、更新 web.config 等)手动部署这个网站?

【问题讨论】:

    标签: asp.net asp.net-mvc visual-studio-2013 web-deployment


    【解决方案1】:

    听起来您的项目中有两种类型的数据库。一个使用 EF Code First,另一个是常规的 SQL 数据库。后者使用 dbDacFx,这是 Web Deploy 附带的一项功能。您的主机必须提供一些配置设置才能使 dbDacFx 正常工作,但似乎他们没有。

    (作为一种解决方法,如果您可以直接从自己的机器连接到数据库,则可以部署到您的机器并保留 dbDacFx 设置,这将影响数据库服务器上的更改。)

    附注:EF Code First 仅在运行时发生,因此不会以任何方式真正影响发布过程。

    至于您的第二个问题:VS 中的发布功能通过 MSBuild 完成所有工作。配置配置文件后,您可以通过命令行执行相同的操作,例如

    msbuild MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfileName 
    

    【讨论】:

    • 希望您早日发布此答案。我花了几乎一整天的时间来设置设置,更改每个选项,最后我就这样做了!!我首先通过 FTP 上传内容,然后将我的项目的连接字符串更改为远程数据库并运行初始化程序。效果很好。
    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 2021-08-21
    • 1970-01-01
    相关资源
    最近更新 更多