Visual Studio Web和SQL发布

时间:2014-02-24 18:19:47

标签: sql-server visual-studio visual-studio-2012 visual-studio-2013 web-deployment

以下是该方案:

  • MVC网络项目
  • 三个MS SQL Server数据库项目
  • 其中一个数据库必须填充查找表
  • 其他表格是用户数据,不需要上传数据
  • GoDaddy托管
  • Visual Studio 2013

我想一举将所有内容(Web项目,sql架构,参考数据)部署到GoDaddy,但它们似乎只提供FTP上传。在Web发布向导中使用FTP时,它会显示“此方法不支持数据库预览”,我将“方法”称为FTP。我可以在FTP中很好地发布Web项目,但是当然没有数据库,Web应用程序就会生成错误。

所以这是我的问题

  1. 向导中列出了“Web Deploy”发布方法,但GoDaddy没有关于如何设置它的信息。这可以和GoDaddy一起使用,它也会发布DB吗?
  2. 如何在localhost上运行时将项目配置为使用本地SQL Server,但在部署时它使用GoDaddy SQL Server?
  3. 本地数据库中的数据可以作为发布向导过程的一部分上传,还是SQL Server Management Studio的首选工具?
  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 我不相信GoDaddy支持WebDeploy。几年前我离开他们的服务时他们没有这样做。您可以与他们交谈以确认是否已更改。
  2. 这是Web.Config Transforms的作用。有关该主题的介绍,请参阅here;该文章有点过时,并未提及最有用的一点 - 您可以为每个发布配置文件添加转换,以便根据您的发布设置对其进行应用。
  3. 您可能无法上传本地数据库文件。在几乎每种托管情况下,SQL服务器和Web服务器都是两台独立的机器,并且不共享任何文件(推论:Web服务器没有安装SQL服务)。您可以尝试的一个解决方法是直接从您自己的计算机发布数据库。也就是说,如果您可以从计算机连接到数据库,则可以执行Web部署将 发布到您自己的计算机 ,但它会将SQL更改发送到您的GoDaddy数据库服务器
  4. #3的更高级解决方法:

    • 设置文件的FTP发布设置
    • 了解如何仅通过WebDeploy /从命令行发布数据库(您可以从命令行参考here获取使用WebDeploy的示例;请注意这是来自GoDaddy - > Local,但是把它转过来很简单)
    • 自定义Web发布管道以插入MSBuild目标以执行WebDeploy命令行(有关修改管道的示例,请参阅here;如果您正在使用,则可以直接在.pubxml文件中添加目标。不打算将它用于多个项目。)

    这将为您提供单个发布配置文件,该配置文件将分别发布您的文件(通过FTP)和您的数据库(通过WebDeploy)。