Web 部署任务失败(此访问控制列表不是规范形式,因此无法修改)
Web deployment task failed (This access control list is not in canonical form and therefore cannot be modified)
在我的机器上向 IIS 8 发布 ASP.NET MVC 4 应用程序时出现以下错误:
This access control list is not in canonical form and therefore cannot be modified.
我在 Windows 10 岁以下并且使用 VS 2013 Ultimate。
我从 web platform installer 5 安装了 web deploy 3.5,我确保服务正常工作
解决方案 1
我能够通过以下方式解决这个问题
- 转到 IIS
- 右键单击要发布到的网站并 select 编辑权限
- 单击安全 选项卡。
- 单击编辑按钮
- 将出现一个消息框,告知权限排序不正确。
- 单击该消息框上的重新排序。
解决方案 2
打开命令提示符(CMD)并执行以下两条语句
icacls.exe C:\inetpub\wwwroot /verify /T /C /L /Q
icacls.exe C:\inetpub\wwwroot /reset /T /C /L /Q
注意:也许你会想要以管理员权限打开 CMD (也许我不确定)
干杯
您可以运行以下命令来修复它
命令提示符
icacls.exe C:\inetpub\wwwroot\<VIRTUAL DIRECTORY> /verify /T /C /L /Q
// If any entries are reported as being not in canonical order then run:
icacls.exe C:\inetpub\wwwroot\<VIRTUAL DIRECTORY> /reset /T /C /L /Q
powershell
$path = C:\inetpub\wwwroot\<VIRTUAL DIRECTORY>
$acl = Get-Acl $path
Set-Acl $path $acl
您可以通过修改 Visual Studio 包生成参数来 防止 这个问题:在 pubxml 文件的 PropertyGroup 部分,添加
<IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
在我的机器上向 IIS 8 发布 ASP.NET MVC 4 应用程序时出现以下错误:
This access control list is not in canonical form and therefore cannot be modified.
我在 Windows 10 岁以下并且使用 VS 2013 Ultimate。
我从 web platform installer 5 安装了 web deploy 3.5,我确保服务正常工作
解决方案 1
我能够通过以下方式解决这个问题
- 转到 IIS
- 右键单击要发布到的网站并 select 编辑权限
- 单击安全 选项卡。
- 单击编辑按钮
- 将出现一个消息框,告知权限排序不正确。
- 单击该消息框上的重新排序。
解决方案 2
打开命令提示符(CMD)并执行以下两条语句
icacls.exe C:\inetpub\wwwroot /verify /T /C /L /Q
icacls.exe C:\inetpub\wwwroot /reset /T /C /L /Q
注意:也许你会想要以管理员权限打开 CMD (也许我不确定)
干杯
您可以运行以下命令来修复它
命令提示符
icacls.exe C:\inetpub\wwwroot\<VIRTUAL DIRECTORY> /verify /T /C /L /Q
// If any entries are reported as being not in canonical order then run:
icacls.exe C:\inetpub\wwwroot\<VIRTUAL DIRECTORY> /reset /T /C /L /Q
powershell
$path = C:\inetpub\wwwroot\<VIRTUAL DIRECTORY>
$acl = Get-Acl $path
Set-Acl $path $acl
您可以通过修改 Visual Studio 包生成参数来 防止 这个问题:在 pubxml 文件的 PropertyGroup 部分,添加
<IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>