1

当我尝试在 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) 无论如何,我无法更改源代码。

这是我的发布管道。

Azure Devops 发布 部署

以下是我的问题:

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

在 Azure 应用服务部署任务期间锁定的 web.config 文件

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

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

Q3)在 StackOverflow 上的另一篇文章中,我看到了一个特定于“重命名锁定文件”的复选框选项, 在 Azure App Service Task v3 中使用 Web 部署时出现了 ERROR_FILE_IN_USE

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

4

1 回答 1

2

MSDEPLOY_RENAME_LOCKED_FILES

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

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

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

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

在此处输入图像描述

这是关于在发布前使应用程序脱机的文档

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

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

例如:

在此处输入图像描述

更新1:

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

我们也可以在IIS web app manage task

在此处输入图像描述

于 2021-04-01T05:37:37.330 回答