【问题标题】:Azure Devops : How to enable the Rename locked files (RenameFilesFlag) with an "IIS web app deploy" taskAzure Devops:如何使用“IIS Web 应用部署”任务启用重命名锁定文件 (RenameFilesFlag)
【发布时间】:2021-04-02 14:47:09
【问题描述】:

当我尝试在 Azure Devops 中使用发布管道进行部署时,我遇到了锁定 DLL 文件的问题。

报错截图为:

输出为文本:

2021-03-31T17:43:18.2626492Z ##[error]Error Code: ERROR_FILE_IN_USE
More Information: Web Deploy cannot modify the file 'Microsoft.Data.SqlClient.SNI.x64.dll' on the destination because it is locked by an external process.  In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.
    Error count: 1.

问题似乎是由错误处理的 .NET 资源引起的。 (例如:非托管 SqlConnection) 反正我也改不了源代码。

这是我的发布管道。

这是我的问题:

Q1)我正在尝试使用此处所述的“-RenameFilesFlag”(MSDEPLOY_RENAME_LOCKED_FILES):

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment?view=azure-devops

web.config file locked during Azure App Service Deploy task

我如何指定这个参数? 我必须填写“附加参数”文本框吗?我尝试了不同的价值观,但我总是得到一个 “无法识别的参数”错误。

Q2) 如果“-RenameFilesFlag”不适用于此任务。 我可以使用“使应用脱机”来解锁文件吗?

Q3)在 StackOverflow 上的另一篇文章中,我看到了一个特定于“重命名锁定文件”的复选框选项 Getting ERROR_FILE_IN_USE while using Web Deploy in Azure App Service Task v3

我的任务中没有这个选项。我是否有可能混淆了两种类型的 Deploy 任务?

【问题讨论】:

    标签: azure azure-devops azure-pipelines-release-pipeline locked-files


    【解决方案1】:

    MSDEPLOY_RENAME_LOCKED_FILES

    据我所知,这种方式只支持Azure Web APP服务。此选项用于设置 Azure 应用设置(云)。它不适用于 IIS 部署(本地)。

    ##[错误]错误代​​码:ERROR_FILE_IN_USE

    要解决此问题,您可以尝试以下方法:

    1.您可以在 IIS Web Deploy 任务中设置Take App Offline 选项。

    这是一个关于Taking an Application Offline before Publishing的文档

    2.您可以在部署应用程序之前停止您的网站并在部署后重新启动它。

    您可以添加IIS web app manage task 来停止和启动 IIS 网站。

    例如:

    更新1:

    正如 ssinfod 的评论:停止应用程序池可以解决这个问题。

    我们也可以在IIS web app manage task实现这个

    【讨论】:

    • 谢谢,我尝试了这两种解决方案,但它没有释放对 DLL 文件的锁定。看来我也必须停止应用程序池。特别是,“重命名锁定的文件”选项似乎非常需要。
    • 您知道“Azure Web APP 服务”中缺少的选项是否会在“IIS 部署(本地)”(即:“IIS Web 应用程序部署”任务)中可用吗?
    • 嗨@ssinfod。感谢您的更新。我能理解你的要求。但我担心 IIS Web 部署任务中没有这样的选项/参数。此“重命名锁定文件”选项用于在 azure Web 应用程序中设置应用程序设置变量(MSDEPLOY_RENAME_LOCKED_FILES)。 IIS 网站没有此设置。因此 IIS Web 应用部署任务不支持它。
    • 现在,我通过使用 Azure“IIS Web 应用程序管理”任务停止应用程序池解决了我的问题。这并不理想,但它会完成工作。我还将观看以下问题github.com/dotnet/SqlClient/issues/354,这似乎正是我的问题。理想情况下,应该在 .Net Core SqlClient 中进行修复。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    相关资源
    最近更新 更多