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

时间:2014-09-12 17:24:32

标签: azure tfs azure-web-sites webdeploy

尝试通过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>

发布配置文件,但它没有让应用程序脱机,因为我收到同样的错误。

以下是我的构建定义的视图,其中设置为使用发布配置文件和应用程序离线设置。

enter image description here

4 个答案:

答案 0 :(得分:12)

您遇到了Azure和.NET的限制

建议您重新启动应用程序。这可以通过更改环境变量来完成,而环境变量又会强制iis重新启动。

例如: 在天蓝色仪表板中:

Set COR_ENABLE_PROFILING = 0

然后再部署,然后再次

 Set COR_ENABLE_PROFILING = 1

您可以找到此问题的说明here

答案 1 :(得分:4)

我知道这是一个古老的话题。但我自己有这个问题,并在Azure中解决了它。

将MSDEPLOY_RENAME_LOCKED_FILES = 1添加到Azure中的设置。

Azure settings

答案 2 :(得分:0)

如果要在部署之前和之后自动停止和启动Azure App Service,那么如果您使用VSTS,此任务现在可以立即使用(如果您使用TFS,请查找提示其中一个评论中的市场任务)

利用这些任务:

  1. 在VSTS的“发布”部分中,将“任务”添加到“类型的发布定义”中 &#34; Azure应用服务管理(预览) - Azure应用服务的启动,停止,重新启动或插槽交换&#34;
  2. 在创建的任务中,选择操作(对于第一个任务,选择&#34;停止应用服务&#34;)
  3. 在部署任务之前拖放此任务,并添加&#34;启动应用服务&#34;部署任务背后的任务
  4. 在任务设置中,您还可以检查这是否仅适用于Azure App Service的特定插槽(例如&#34; Stage&#34;)
  5. 配置完这两个额外的任务后,它对我来说很好。

    (...顺便说一下,VSTS Build和CI现在还通过选择Agent&#34; HOST VS 2017&#34;来支持使用VS2017制作的ASP.NET CORE版本。)

答案 3 :(得分:0)

如果有任何自动选项可以执行以下3个步骤,那应该可以。

  1. 停止应用服务
  2. 部署代码
  3. 启动应用服务