【问题标题】:Azure Cloud Services - Publish incremental changes onlyAzure 云服务 - 仅发布增量更改
【发布时间】:2013-05-21 09:40:01
【问题描述】:

我使用打包和发布在 Windows Azure 云服务上部署了一个 C# ASP.Net MVC4 Web 角色。第一次上传整个包,网站运行良好。当我想发布下一组更改时,发布选项正在尝试再次上传整个包。

我已经配置了远程桌面和 Web 部署,并且还按照文章 Publishing a Cloud Service using the Windows Azure Tools 中所述的指南启用了增量更新。

但这似乎不起作用,Publish 正在尝试一次又一次地上传整个包。有没有人遇到过这个问题并提出任何解决方法?

【问题讨论】:

    标签: azure azure-web-roles


    【解决方案1】:

    没有。

    目前没有开箱即用的解决方案来支持增量更改部署。

    在使用云服务时,我强烈建议您不要将 Web Deploy 用于开发/测试以外的任何事情。原因是通过 web-deploy 和任何其他非完整包上传过程所做的所有更改都将在实例被回收/修复后立即清除。

    我一直在从事一个允许推出部分更改的项目。不幸的是,它目前只支持更新“bin”文件夹。你可以看看this project here。至少这是一个很好的起点。

    【讨论】:

    • 你的意思是旧的上传的包会在实例回收后恢复?
    • 我会说“最新的”CSPKG 包将用于在需要关闭主机的系统回收/修复/guesOS 更新/hostOS 更新时初始化 VM。
    【解决方案2】:

    要快速发布对开发环境的增量更改(不推荐用于生产),请查看 - Speed Up Azure Deployments with the New Web Deployment Feature

    【讨论】:

    • 请仔细阅读视频描述:This means that you can make updates to your already deployed web apps with just the changes onto the same running instance, which greatly accelerates the process of deploying updates *while debugging* your cloud-based web applications调试时!我已经提到的东西! 推荐用于生产部署!
    • @astaykov - 感谢您的更新。我已经更新了我的 cmets。请删除downvote,以便那些想在开发环境中使用它的人会发现它有帮助。
    【解决方案3】:

    在 VS2013 中,从 Web 应用项目的上下文菜单中选择 'Deploy',该项目由角色引用不是“云服务”项目引用角色...这样做会以非增量方式发布整个服务及其所有角色)。

    应该有一个“发布配置文件”,它指的是 *.cloudapp.net 平台上的网站。如果有,它是由 Visual Studio 放置的……可能是在您首次部署服务时第一次勾选“为所有 Web 角色启用 Web 部署”复选框时。

    但是,它可能不存在,或者是错误的。因为,例如,Visual Studio 是愚蠢的,并且注意到您已经将 Web 应用程序发布为“网站”(在您决定将其作为“Web 角色”合并到服务中之前),它决定离开现有的*.azurewebsites.net 单独的条目。还是因为该项目仅作为服务定义 XML 中的 <VirtualApplication /> 元素包含在角色中,而 Visual Studio 只是忽略了创建它?

    因此,您必须想办法强制 Visual Studio 为您重新创建正确的配置文件,否则您必须手动复制和编辑来自已知良好来源的发布配置文件 XML 文件 (Properties/PublishProfiles项目根目录下的目录),或者只是从缺少的文档中猜测设置。

    这些设置将类似于:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <WebPublishMethod>MSDeploy</WebPublishMethod>
        <MSDeployServiceURL>https://MYAPP.cloudapp.net:8172/MsDeploy.axd</MSDeployServiceURL>
        <DeployIisAppPath>INSTANCE</DeployIisAppPath>
        <RemoteSitePhysicalPath />
        <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <DeployAsIisApp>False</DeployAsIisApp>
        <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
        <UserName>MYUSER</UserName>
      </PropertyGroup>
    </Project>
    

    在哪里: MYAPP - 是部署的 Azure 服务的域名 INSTANCE - 是您要更新的实例的名称(从服务器资源管理器中获取...它是您的服务下的“实例”的“名称”属性...或从包含您的实例的列表中获取Windows Azure 管理仪表板中的服务)。 MYUSER - 是您在最初发布时为远程桌面服务设置的用户名

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多