如何在 Azure 发布管道中跳过“为路径添加 ACL”步骤

问题描述 投票:0回答:1

我在 Azure 中创建了一个发布管道,它使用部署组类型作业将 Web 应用程序部署到 IIS 服务器上我自己的 Windows VM。 该应用程序本身非常遗留,并且它的某些方面没有按照最佳实践编写,这导致部署位置中积累了太多文件和嵌套文件夹。不幸的是,我们暂时无法摆脱它们。

在管道中使用“IIS Web 部署”作业时,由于文件和文件夹数量较多(考虑到数百万的规模),管道在一个似乎称为“

Adding ACLs for path...”的进程上花费了很长的时间
”(下面屏幕截图中的第 3173 行,我最终不得不取消管道并手动部署,因为它花费的时间太长)。

我做了一些研究,我知道这花费了太长时间,因为部署文件夹内的路径太多。

我的问题是是否有办法跳过此过程,而只需让管道将文件部署到目的地,而不用担心所有现有路径?因为它需要复制的内容实际上很小。跳过这个过程是我目前正在寻找的理想解决方案。

azure iis azure-devops deployment azure-pipelines-release-pipeline
1个回答
0
投票

您可以尝试按照以下任意步骤跳过应用程序中的 ACL 检查:

  1. 在您的应用程序的项目文件中添加“

    <IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
    ”标签(例如
    .csproj
    )。

  2. 使用 MSBuild Task 构建应用程序时,传递参数“

    /p:IncludeSetAclProviderOnDestination=False
    ”。

  3. 部署时,在

    .pubxml
    文件中,在“
    <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
    ”下添加“
    <PropertyGroup>
    ”。

    <?xml version="1.0" encoding="utf-8"?>
    . . .
    
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
        . . .
      </PropertyGroup>
      . . .
    </Project>
    
© www.soinside.com 2019 - 2024. All rights reserved.