【Azure 应用服务】VS2019发布应用到正在运行的App Service时失败问题的解决

问题描述

在VS 2019中配置号App Service的Publish Profile后,发布应用出现错误。根据VS 2019中的输出消息可知有文件正在运行中,无法被替换,所以发布失败。

 

 

问题解决

根据消息提示 “The process cannot access the file because it it being used by anther process”, 因为当前App Service正在远行,所以需要先停止App Service,然后部署,最后启动应用。具体步骤为:

  1. 在Azrue Portal 上点一下“停止”
  2. 开始部署
  3. 部署完成后在Azrue Portal 上再点一下“开始”

如果在部署代码时候,感觉以上办法有些冗余。

 

方式一:可以在Project的根目录中(目标路径时是App Service中的wwwroot目录) 添加 App_Offline.htm 文件。

为什么这有帮助?

因为 ASP.NET 和 ASP.NET Core 都知道如何监听这个文件的出现,并自行关闭。 这会导致卸载所有资源,这通常会解锁所有文件。

当然,缺点是您的站点在部署期间不可用。

 

方式二:修改App Service的配置参数,启用 MSDEPLOY_RENAME_LOCKED_FILES=1  的配置。

如果在部署期间无法复制 DLL,这会导致 msdeploy 尝试重命名 DLL。 这通常有效,因为即使加载了 DLL,它们通常仍然可以重命名。 它使用 .delete 扩展名重命名它们,然后在下一轮清理。

 

 

问题参考

Dealing with locked files during deployment: https://github.com/projectkudu/kudu/wiki/Dealing-with-locked-files-during-deployment or https://www.cnblogs.com/lulight/articles/15207168.html

 

posted @ 2021-08-30 17:56  路边两盏灯  阅读(187)  评论(0编辑  收藏  举报