我使用打包和发布在 Windows Azure 云服务上部署了一个 C# ASP.Net MVC4 Web 角色。第一次上传整个包,网站运行良好。当我想发布下一组更改时,发布选项正在尝试再次上传整个包。
我已经配置了远程桌面和 Web 部署,并且还按照使用 Windows Azure 工具发布云服务一文中所述的指南启用了增量更新。
但这似乎不起作用,Publish 正在尝试一次又一次地上传整个包。有没有人遇到过这个问题并提出任何解决方法?
我使用打包和发布在 Windows Azure 云服务上部署了一个 C# ASP.Net MVC4 Web 角色。第一次上传整个包,网站运行良好。当我想发布下一组更改时,发布选项正在尝试再次上传整个包。
我已经配置了远程桌面和 Web 部署,并且还按照使用 Windows Azure 工具发布云服务一文中所述的指南启用了增量更新。
但这似乎不起作用,Publish 正在尝试一次又一次地上传整个包。有没有人遇到过这个问题并提出任何解决方法?
没有。
目前没有开箱即用的解决方案来支持增量更改部署。
在使用云服务时,我强烈建议您不要将Web Deploy 用于开发/测试以外的任何事情。原因是,一旦实例被回收/修复,通过 web-deploy 和任何其他非完整包上传过程所做的所有更改都将被清除。
我一直在研究一个允许推出部分更改的项目。不幸的是,它目前只支持更新“bin”文件夹。您可以在这里查看这个项目。至少这是一个很好的起点。
要快速发布对开发环境的增量更改(不推荐用于生产),请查看 -使用新的 Web 部署功能加速 Azure 部署。
在VS2013中,从角色引用的Web App项目的上下文菜单中选择(而不是引用角色'Deploy'
的“云服务”项目......这样做将发布整个服务及其所有角色非-增量)。
应该有一个“发布配置文件”,它指的是 *.cloudapp.net 平台上的网站。如果有,它是由 Visual Studio 放置的……可能是在您首次部署服务时第一次勾选“为所有 Web 角色启用 Web 部署”复选框时。
但是,它可能不存在,或者是错误的。因为,例如,Visual Studio 是愚蠢的,并且注意到您已经将 Web 应用程序发布为“网站”(在您决定将其作为“Web 角色”合并到服务中之前),它决定离开现有的*.azurewebsites.net 单独的条目。还是因为该项目仅作为<VirtualApplication />
服务定义 XML 中的一个元素包含在角色中,而 Visual Studio 只是忽略了创建它?
因此,您必须找到一些方法来强制 Visual Studio 为您重新创建正确的配置文件,或者您必须从已知的良好来源(Properties/PublishProfiles
项目根目录下的目录)手动复制和编辑发布配置文件 XML 文件,或者只是从缺少的文档中猜测设置。
这些设置将类似于:
<?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
- 是您最初发布时为远程桌面服务设置的用户名