简短版本:如何在不首先手动停止应用服务的情况下部署新版本?
长版: 我正在使用以下工作流程将新版本的ASP.NET Core应用程序发布到Azure App-Service。
App-Service正在基本实例上运行。我知道这不是真正的用途,但我希望在我们投入生产(标准实例)之前有一个很好的方法让这个工作流程运行。
这有效,但我怎样才能避免第4步到第7步?
我希望第3步中的推送会自动触发剩余的步骤。 在第3步之后,我可以看到文件已经更新,新的静态文件被提供给浏览器,但旧的二进制文件仍在运行。
同样,我可以在门户网站上的部署插槽之间切换。我得到了新的静态文件,但之前部署的二进制文件仍在回答所有调用。
这不起作用,静态文件已更改,但旧的二进制文件仍在响应调用。
答案 0 :(得分:1)
您需要在Azure App Service应用程序设置中启用msdeploy标志MSDEPLOY_RENAME_LOCKED_FILES = 1。如果设置了该选项,则msdeploy将重命名在应用程序部署期间锁定的锁定文件
单击应用程序设置并向下滚动,直至看到应用程序设置。 设置此键:MSDEPLOY_RENAME_LOCKED_FILES,其值为1
答案 1 :(得分:0)
如果没有先手动停止应用服务,我该如何部署新版本?
当我通过VS开发我的.Net Core Web应用程序时,我会利用发布向导,选中删除目的地的其他文件选项并通过设置{{1}来使用App offline support在发布配置文件下,将我的应用程序发布到Azure Web App。
根据您当前的部署工作流程,我假设您正在使用本地Git存储库对Azure App Service进行持续部署。更改源代码后,将更改提交到本地存储库,然后将源代码推送到我的Web应用程序远程存储库,源代码将构建并复制到Azure端的EnableMSDeployAppOffline
。您可以关注的详细信息Local Git Deployment to Azure App Service。
对于您的步骤1到3,我只是将代码更改从本地存储库推送到我的应用服务远程存储库。 Azure将生成部署脚本,以便您构建源代码项目并将构建的内容移动到D:\home\site\wwwroot
。此外,您可以Custom Deployment Script来满足您的额外要求。