我在 Azure 中创建了一个发布管道,它使用部署组类型作业将 Web 应用程序部署到 IIS 服务器上我自己的 Windows VM。 该应用程序本身非常遗留,并且它的某些方面没有按照最佳实践编写,这导致部署位置中积累了太多文件和嵌套文件夹。不幸的是,我们暂时无法摆脱它们。
在管道中使用“IIS Web 部署”作业时,由于文件和文件夹数量较多(考虑到数百万的规模),管道在一个似乎称为“
Adding ACLs for path...
”的进程上花费了很长的时间
”(下面屏幕截图中的第 3173 行,我最终不得不取消管道并手动部署,因为它花费的时间太长)。
我做了一些研究,我知道这花费了太长时间,因为部署文件夹内的路径太多。
我的问题是是否有办法跳过此过程,而只需让管道将文件部署到目的地,而不用担心所有现有路径?因为它需要复制的内容实际上很小。跳过这个过程是我目前正在寻找的理想解决方案。
您可以尝试按照以下任意步骤跳过应用程序中的 ACL 检查:
在您的应用程序的项目文件中添加“
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
”标签(例如.csproj
)。
使用 MSBuild Task 构建应用程序时,传递参数“
/p:IncludeSetAclProviderOnDestination=False
”。
部署时,在
.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>