【问题标题】:TeamCity using MSDEPLOY ERROR_FILE_IN_USETeamCity 使用 MSDEPLOY ERROR_FILE_IN_USE
【发布时间】:2018-05-18 20:35:00
【问题描述】:

我有一个 ASP.NET 4.6.1 应用程序,我正在尝试使用 TeamCity 和 MSBuild 将其部署到远程 Web 服务器。下面是 TeamCity 中的 MSBuild 构建步骤。

当我在 TeamCity 中运行构建时,它总是在此构建步骤中失败并显示 FILE_IN_USE_ERROR。出错前正在更新的 DLL 通常是相同的,但有时它们是不同的。

[MSBuild 输出] 信息:更新文件 (MyApp\bin\roslyn\Microsoft.VisualBasic.Core.targets)。 [10:35:23]

[MSBuild 输出] 信息:更新文件 (MyApp\bin\roslyn\System.AppContext.dll)。 [10:35:23]

[MSBuild 输出] 信息:更新文件 (MyApp\bin\roslyn\System.Collections.Immutable.dll)。 [10:35:23]

[MSBuild 输出] MSDEPLOY:错误代码:ERROR_FILE_IN_USE [C:\BuildAgent\work\b89cd3dfa447b\MyApp\MyApp.csproj]

我已经阅读了许多文章(herehereherehere)建议我在部署之前删除 app_offline.htm 文件,以便 IIS 可以重新路由流量和文件锁定问题将停止。我试过了,但它不起作用。在此构建步骤中,我仍然遇到文件正在使用的问题。

我还在许多其他讨论中读到,另一种解决方案是停止应用程序池、部署应用程序更新并启动应用程序池。这不是一个现实的解决方案,因为部署通常持续 15 到 20 分钟。另外,这不允许我向任何当前用户显示好消息。

我已经阅读了一段时间,这似乎是部署到 IIS Web 服务器的常见用例。这不应该在不锁定文件的情况下工作吗?有人知道这个问题的其他解决方案吗?

【问题讨论】:

  • 有趣...我刚刚开始遇到同样的问题。我正在运行具有类似参数的 MSBuild.exe。我也刚刚更新到最新版本的teamcity
  • 我遇到了同样的问题 :( 考虑到 .csproj 文件没有被部署,也没有被使用,甚至在服务器上,这很奇怪。这一定是一个错误。但它是破坏发布!我只是在带有 asp 核心的 IIS 服务器上进行 Web 部署

标签: asp.net iis msbuild teamcity msdeploy


【解决方案1】:

我会尝试停止应用程序池,看看这是否是问题的根本原因。

但我不确定为什么它在 .csproj 文件上失败,因为通常您不会将它们部署在服务器上。因此,它要么在不同的文件上失败(实际上由 Web 应用程序使用),要么在构建期间失败,而不是在部署期间失败(而不是 app-pool 停止不会影响)。

【讨论】:

  • 遇到了和他一样的问题,而且效果很好,我重新启动了我的 windows 服务器
猜你喜欢
  • 2014-03-31
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
相关资源
最近更新 更多