【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 @   路边两盏灯  阅读(207)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示