从门户停止站点
使用客户端(例如FileZilla)通过FTP登录站点。您可以通过查找publishMethod="FTP"部分来获取发布配置文件中的FTP网址和凭据。
导航至站点/wwwroot文件夹
删除锁定的文件
启动网站
立即从门户的部署选项卡重新部署站点。
请查看如何在发布时将Web应用程序脱机,以获取可能的解决方案。基本上包括
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
你可以采用多种解决方案
从 Azure 中删除现有文件。
更改 Azure 配置设置
MSDEPLOY_RENAME_LOCKED_FILES = 1
如果您不想删除文件,则可以停止服务,例如(Webjobs)。
WEBJOBS_STOPPED = 1
对我而言唯一有效的解决方案是:删除该站点,然后重新部署(使用相同名称)。FTP凭据仍然有效。
其他我尝试过但无法解决的方法:
显然,在发布过程中上传到您的服务器的App_Offline.htm
文件实际上应该命名为app_offline.htm
(即小写)。 系统无法以不区分大小写的方式识别该文件是一个错误(在this GitHub issue中某个时刻被认可)。
因此,如果将<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
添加到您的.pubxml
文件不起作用,Azure web app也无法重新启动,请尝试在服务器上将App_Offline.htm
重命名为app_offline.htm
(可能需要再次发布)。 它应该可以工作。
PS:据说这个错误在2017年1月的.NET Core中已经修复(请参阅链接的问题),但我无法弄清楚问题是Azure中的.NET版本还是上传PC中的.NET版本或其他原因(this thread没有帮助我)。 同时,似乎问题确实得到了解决,因为我们再也没有遇到过这个问题。