【问题标题】:Web deployment task failed (This access control list is not in canonical form and therefore cannot be modified)Web 部署任务失败(此访问控制列表不是规范形式,因此无法修改)
【发布时间】:2015-09-18 09:33:16
【问题描述】:

在我的机器上将 ASP.NET MVC 4 应用程序发布到 IIS 8 时出现以下错误:

此访问控制列表不是规范形式,因此无法修改。

我在 Windows 10 下并使用 VS 2013 Ultimate。
我从 web 平台安装程序 5 安装了 web deploy 3.5,并确保服务正常运行

【问题讨论】:

    标签: c# asp.net-mvc-4 iis publish


    【解决方案1】:

    解决方案 1

    我可以通过以下方式解决这个问题

    1. 转到 IIS
    2. 右键单击要发布到的网站并选择编辑权限
    3. 点击安全标签。
    4. 点击编辑按钮
    5. 将出现一个消息框,提示权限排序不正确。
    6. 点击该消息框上的重新排序

    解决方案 2

    打开命令提示符(CMD)并执行以下两条语句

    icacls.exe C:\inetpub\wwwroot /verify /T /C /L /Q
    icacls.exe C:\inetpub\wwwroot /reset /T /C /L /Q
    

    注意:也许你会想要以管理员权限打开 CMD(也许我不确定)

    干杯

    【讨论】:

    • 好的,这行得通,但为什么行得通?错误是什么意思?
    • 在最近的版本中,点击“高级”按钮后可以使用“重新排序”选项。
    【解决方案2】:

    你可以运行下面的命令来修复它

    命令提示符

    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
    

    Source

    powershell

    $path = C:\inetpub\wwwroot\<VIRTUAL DIRECTORY>
    $acl = Get-Acl $path
    Set-Acl $path $acl
    

    Source

    【讨论】:

      【解决方案3】:

      您可以通过修改 Visual Studio 包生成参数防止此问题:在 pubxml 文件的 PropertyGroup 部分中,添加

      <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-10
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多