当前位置:  开发笔记 > 编程语言 > 正文

由于文件锁定(msvcr100.dll),TFS CI构建到Azure Web App(App Service)失败

如何解决《由于文件锁定(msvcr100.dll),TFSCI构建到AzureWebApp(AppService)失败》经验,为你挑选了0个好方法。

问题

尝试从TFS CI发布到Azure Web App时出现部署错误.文件被锁定,这会阻止构建更新.

症状

手动发布(Web部署从Visual Studio内部发布)通常会成功.

停止Web应用程序和发布允许它成功,但是如果我们需要每次都需要停止并启动Web App,那么这会破坏我们的CI.

CI发布到Web角色和工作者角色似乎没有此问题,我们只在发布到Web Apps(以前的Web站点,当前的Azure门户术语现在是App Service)时才会发布它.

只有通过TFS从CI版本发布才能以这种方式一致地失败.

错误

Web部署任务失败.(Web部署无法修改目标上的文件'msvcr100.dll',因为它被外部进程锁定.为了允许发布操作成功,您可能需要重新启动应用程序以释放锁定,或者使用适用于下次发布尝试的.Net应用程序的AppOffline规则处理程序.有关详细信息,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_FILE_IN_USE .)

链接中的信息不是很有帮助.

ERROR_FILE_IN_USE诊断 - 无法覆盖或删除目标文件,因为它当前正在使用中.解决方案 - 确保在执行同步之前未使用目标文件.如果要将内容同步到IIS 7或更高版本上托管的网站(使用appHostConfig,iisApp或contentPath提供程序),请考虑通过启用appOffline规则在同步期间使应用程序脱机.

尝试过的决议

我们正在使用New Relic - 已经删除了New Relic,这个问题仍然存在.二进制文件似乎是一个Microsoft库,但不清楚它与应用程序的相关性(它没有被引用).

其他一些SO问题已经解决了与发布类似的问题,但这些问题都与从TFS CI中解决此问题无关.

azurew网站持续部署 - Web Deploy无法修改目标上的文件'XXX',因为它被外部进程锁定

如何在发布时使Web应用程序脱机?

上述问题中的一个答案建议在发布配置文件中使用EnableMSDeployAppOffline配置,并且添加此配置可以在VS中手动执行发布,但从TFS/CI自动发布时无法解决问题.

编辑

如何在发布时使Web应用程序脱机?处理使用EnableMSDeployAppOffline配置使应用程序脱机 - 遗憾的是,在通过Visual Studio(而不是CI)执行WebDeploy时,似乎只支持此配置.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有