【问题标题】:Publish web-site vs Azure Cloud service publish发布网站与 Azure 云服务发布
【发布时间】:2015-04-19 14:19:51
【问题描述】:

将网站发布到 Azure 有两种方法 - 通过简单的发布功能与部署为云服务。我在解决方案中也有一个工人角色,所以我选择了云服务而不是简单的发布网站功能。

但我对云服务非常失望。首先,部署为云服务所花费的时间是简单的发布网站的 10 倍。第二个问题 - 我每次要部署时都必须将 web.config 中的连接字符串更改为 SQL Azure(而不是我的本地 SQL Server)。网站发布能够为部署设置必要的 SQL 连接字符串。也许我做错了什么并且部署可以在 10 秒内完成并且存在设置不同连接字符串的能力(如网站发布)?

我考虑将仅工作人员角色和网站部署为云服务,而不使用云服务...

【问题讨论】:

    标签: c# asp.net-mvc azure publish azure-cloud-services


    【解决方案1】:

    首先,我强烈建议您通过比较 Azure 网站和云服务的问题:What is the difference between an Azure Web Site and an Azure Web Role

    现在来回答你的问题:

    首先,部署为云服务需要 10 倍以上的时间, 而不是简单的发布网站。

    这必然会发生,因为当您部署云服务(例如通过 Visual Studio)时,会发生以下会导致延迟的事情:

    • 作为云服务构建过程的一部分,Visual Studio 会创建一个包文件并将其上传到 Blob 存储中。然后使用此包创建云服务。
    • 负责管理云服务生命周期的 Azure Fabric Controller 会为您创建一个全新的虚拟机,安装必要的软件(例如 IIS),然后从包文件中部署您的代码。

    这两种情况都不会发生在网站中。

    第二个问题 - 我必须每次,当我想部署时,改变 web.config 中的连接字符串到 SQL Azure(而不是我的本地 SQL 服务器)。网站发布能够设置必要的 SQL 连接 用于部署的字符串。也许我做错了什么并且部署可以做 10 秒并且存在设置不同连接字符串的能力(如 网站发布)?

    你本身并没有做错什么。您的 web.config 文件被捆绑到包文件中,因此在对 web.config 文件进行任何更改后,您需要重新创建包并更新部署(包括上传到 blob 存储)。

    您的问题的一个可能解决方案是使用config transformation 并让您的web.config.release 文件包含生产数据库的连接字符串。当您在发布模式下构建项目时,您的 web.config 文件中将有正确的连接字符串。

    我考虑将仅作为工作人员角色和网站部署到云端 网站,没有云服务...

    这当然是一个可行的选择。另一种选择是查看WebJobs。与工作角色一样,它们旨在处理后台处理工作负载,但在部署方面具有与网站相同的便利性。您可能还会发现这篇博文也很有用:http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多