asp.net - TeamCity 使用 MSDEPLOY ERROR_FILE_IN_USE

标签 asp.net iis msbuild teamcity msdeploy

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

enter image description here

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

[MSBuild output] Info: Updating file (MyApp\bin\roslyn\Microsoft.VisualBasic.Core.targets). [10:35:23]

[MSBuild output] Info: Updating file (MyApp\bin\roslyn\System.AppContext.dll). [10:35:23]

[MSBuild output] Info: Updating file (MyApp\bin\roslyn\System.Collections.Immutable.dll). [10:35:23]

[MSBuild output] MSDEPLOY : error Code: ERROR_FILE_IN_USE [C:\BuildAgent\work\b89cd3dfa447b\MyApp\MyApp.csproj]

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

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

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

最佳答案

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

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

关于asp.net - TeamCity 使用 MSDEPLOY ERROR_FILE_IN_USE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418912/

相关文章:

MSbuild,如何访问内联任务代码中的项目属性值?

asp.net - 我的 ASP.Net 代码可以从 sendgrid 获得电子邮件已发送的确认吗?

asp.net - 将 url 缩短为 cms

apache - SNI 多域 ssl apache iis

android - 如何解决 "No certificates found - The app Chrome has requested a certificate"Android/Google Chrome 问题

visual-studio - 如果多个文件具有相同的名称,Visual Studio 断点会在错误的源文件(或同时多个文件)中中断

.net - 如何在 Hudson-CI 上运行 MsTest 测试?

c# - 在 Visual Studio 2019 中添加带有 css 类的 div 的键盘快捷方式

c# - 如何配置 NLog 以写入 Azure 应用服务的日志流?

c# - 在 VB.NET 中将字符串生成器转换为字符串数组