使用Visual Studio在不使用dbDacFx的情况下进行部署

时间:2013-12-14 22:00:41

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

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

  1. 我去了主持人的面板,创建了一个网站并更改了设置。
  2. 我创建了一个数据库用户和一个数据库,并将用户添加到该数据库。
  3. 然后我去了一个名为“Web Publishing”的标签,点击了此网站的下载发布配置文件
  4. 去Visual Studio,右键单击项目名称,单击“发布”选项,然后导入下载的文件。点击下一步,但数据库的连接字符串不存在。
  5. 我用Notepad ++打开文件,并将连接字符串复制到我的数据库上下文中。单击两个复选框“使用此连接...”和“执行代码首先迁移....”。在另一个连接上,“更新数据库”和“使用......”
  6. 我运行了发布但是它失败并显示以下消息:
  7. Unable to perform the operation. Please contact your server administrator to check authorization and delegation settings.

    您认为问题是什么?

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

1 个答案:

答案 0 :(得分:1)

听起来你的项目中有两种类型的数据库。一个使用EF Code First,另一个是常规SQL数据库。后者正在使用dbDacFx,这是Web Deploy附带的一个功能。您的托管服务商必须为dbDacFx提供一些配置设置才能正常工作,而且它们似乎没有。

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

旁注:EF Code First的东西只在运行时发生,因此不会以任何方式影响发布过程。

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

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