azurew网站持续部署 - Web Deploy无法修改目标上的文件“XXX”,因为它已被外部进程锁定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了azurew网站持续部署 - Web Deploy无法修改目标上的文件“XXX”,因为它已被外部进程锁定相关的知识,希望对你有一定的参考价值。
尝试通过TFS持续部署部署azure网站时遇到以下错误。
我正在使用TfvcContinousDeploymentTemplate.12.xaml构建定义模板。
异常消息:Web Deploy无法修改目标上的文件“Antlr3.Runtime.dll”,因为它已被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次发布尝试时使用.Net应用程序的AppOffline规则处理程序。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE。 (输入DeploymentDetailedException)
我已经完成了建议和添加的内容
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
发布配置文件,但它没有让应用程序脱机,因为我得到相同的错误。
以下是我的构建定义的视图,其中设置为使用发布配置文件和应用程序离线设置。
您遇到了Azure和.NET的限制
建议重新启动您的应用程序。这可以通过更改环境变量来完成,而环境变量又强制iis重新启动。
例如:在天蓝色仪表板中:
Set COR_ENABLE_PROFILING = 0
然后再部署
Set COR_ENABLE_PROFILING = 1
你可以找到这个问题的描述here
我知道这是一个古老的话题。但我有自己的这个问题,并在Azure中解决了它。
将MSDEPLOY_RENAME_LOCKED_FILES = 1添加到Azure中的设置。
如果要在部署之前和之后自动停止和启动Azure App Service,那么如果您使用VSTS,此任务现在可用(如果您使用的是TFS,请查找带有市场任务的提示)在其中一条评论中)
要利用这些任务:
- 在VSTS的“发布”部分中,将“任务”添加到“Azure应用服务管理(预览) - Azure应用服务的启动,停止,重新启动或插槽交换”类型的版本定义中
- 在创建的任务中,选择操作(对于第一个任务,选择“停止应用程序服务”)
- 在部署任务之前拖放此任务,并在部署任务后面添加“启动应用程序服务”任务
- 在任务设置中,您还可以检查这是否仅应用于Azure App Service的特定插槽(例如“Stage”)
配置完这两个额外的任务后,它对我来说很好。
(...顺便说一句,VSTS Build和CI现在还通过选择Agent“HOST VS 2017”支持使用VS2017制作的ASP.NET CORE版本)
如果有任何自动选项来执行以下3个步骤,那应该有效。
- 停止应用服务
- 部署代码
- 启动应用服务
以上是关于azurew网站持续部署 - Web Deploy无法修改目标上的文件“XXX”,因为它已被外部进程锁定的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio使用Web Deploy远程发布网站及其配置
持续集成之 Jenkins 通过 Deploy 插件热部署 java 程序
如何在被 capistrano 禁用时访问 rails 应用程序,使用 deploy:web:disable 来更新内容?
Hudson + SVN + Maven 持续集成实现自动化编译打包部署(over SSH 和 Deploy war/ear to a container 两种部署方式)