我自动部署了ASP.NET MVC应用程序,它使用NewRelic进行性能分析,使用MSBuild和WebDeploy进行天蓝色。
我已使用waws-prod-blu-001.publish.azurewebsites.windows.net:443 url进行部署,就像发布配置文件中提到的那样。此外,我在部署之前停止我的网站,并在NewRelic锁定一些日志文件后启动,因此部署失败。这是官方解决方法in NewRelic documentation。
通常部署需要2-3分钟。然而,最后几天部署开始耗时超过30分钟并且不时失败。我已下载新的发布配置文件,并注意到WebDeploy网址已更改为KUDU网址({my-app} .scm.azurewebsites.net:443)。更新url部署后需要照常2-3分钟。但是,当我停止网站时,KUDU也无法访问,我无法进行部署。
我的问题是:当NewRelic要求在部署时停止网站并且KUDU需要网站运行以进行部署时,如何部署通过KUDU使用NewRelic的Azure网站。任何其他部署方式也是可以接受的。
我已经尝试了下一步:
1)通过FTP部署也非常非常慢,因为它使用相同的URL(ftps://waws-prod-blu-001.publish.azurewebsites.windows.net/)。
2)在部署之前恢复网站并没有帮助。 NewRelic仍会锁定一些日志文件。
答案 0 :(得分:10)
在Azure门户中,您可以通过将应用程序设置COR_ENABLE_PROFILING更改为0并点击保存来强制Azure卸载探查器DLL文件。这将重新启动IIS并卸载DLL,而无需用户看到任何错误(只是延迟到达站点)。然后,您可以运行部署,应该在没有锁定问题的情况下继续。完成部署后,请确保应用程序设置回到1.
您也可以通过Azure Powershell执行此操作。
答案 1 :(得分:0)
我们最近进行了一项更改,即使您停止该网站,也可以让Kudu继续运行。因此,现在避免此问题的简单方法就是停止站点,发布和重新启动站点。