在 azure webapp 部署后获取正在建设中的站点消息

Getting site under construction message after azure webapp deployment

我在发布(使用 visual studio webdeploy )我的 webapp 到 azure 时遇到网络故障。后来我又试了一次,然后我得到了以下错误信息。

Error 5 Web deployment task failed. (Web Deploy cannot modify the file 'NewRelic.Agent.Core.dll' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.) 0 0 ABCD.ABCD.ABCD.ABCD

所以我重新启动了我的 webapp 几次,但同样的异常。然后我尝试使用 FTP。那也是一个失败。几分钟后,我再次尝试使用 visual studio 网络部署,然后发布成功。但现在我收到 503 错误 - 网站正在建设中。有什么想法吗?

注意:我也试过离线应用程序。没有希望

我解决了我的问题。解决方案是从由于我添加到发布配置文件的应用程序离线规则而创建的根目录(在服务器上)中删除离线 html(APP_OFFLINE.html)。

实际问题: <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline> 在您的发布配置文件中,实际用于在部署时使您的应用程序脱机。完成部署后,MSDeploy 工具应该会自动删除 APP_OFFLINE.html。但是,不知何故,在上述情况下并没有发生。

所以我的建议是,查看您网站的根目录,如果有一个名为 APP_OFFLINE.html 的文件,请将其删除。

Culprit for this outage : app_offline.htm

这是 Azure Kudu 服务的一个已知错误,它无法间歇性地从服务器 - https://github.com/projectkudu/kudu/issues/2949 删除 app_offline.htm 文件。

添加此文件是为了暂时关闭站点,应该在站点升级后将其删除。但这并不是一直发生的。截至 2019 年 11 月,该漏洞仍未解决。

有一个简单的解决方法:

  • 在 Azure 中打开您的应用服务。在左侧面板上,滚动并找到 Advanced Tools。单击开始。这会将您带到 Kudu 服务以获取您的应用程序服务。
  • 在导航栏上,单击“工具”>“Zip 推送部署”。
  • 列表中会有一个文件app_offline.htm。
  • 点击左边的删除按钮将其删除。而已!您的应用现在应该已经启动了。

永久解决方案是:

Tell Kudu not to create this file at all by adding key SCM_CREATE_APP_OFFLINE with value 0 in your appsettings.

使用发布配置文件从 Visual Studio 发布并且发布因错误而失败时,可能会发生此错误。

解决方法是解决发布错误

在我的例子中,错误与锁定的文件有关。在发布之前停止应用程序服务解决了这个问题。

仅供参考,这件事今天发生在我身上,通过 ADO CI/CD 自动部署。网络应用本身的 .exe 上的 ERR_FILE_IN_USE 上次部署似乎失败,因此回滚似乎不成功。