Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web部署任务失败(此访问控制列表不是规范格式,因此无法修改)_C#_Asp.net Mvc 4_Iis_Publish - Fatal编程技术网

C# Web部署任务失败(此访问控制列表不是规范格式,因此无法修改)

C# Web部署任务失败(此访问控制列表不是规范格式,因此无法修改),c#,asp.net-mvc-4,iis,publish,C#,Asp.net Mvc 4,Iis,Publish,将ASP.NET MVC 4应用程序发布到我的计算机上的IIS 8时出现以下错误: 此访问控制列表不是规范格式,因此无法修改 我在Windows 10下使用VS 2013 Ultimate。 我从web平台安装程序5安装了WebDeploy3.5,并确保服务正常工作 解决方案1 我可以用下面的方法解决这个问题 转到IIS 右键单击要发布到的网站,然后选择编辑权限 单击安全性选项卡 单击编辑按钮 将出现一个消息框,说明权限排序不正确 在该消息框上单击重新排序 解决方案2 打开命令提示符(CMD)

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

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

我在Windows 10下使用VS 2013 Ultimate。
我从web平台安装程序5安装了WebDeploy3.5,并确保服务正常工作


解决方案1

我可以用下面的方法解决这个问题

  • 转到IIS
  • 右键单击要发布到的网站,然后选择编辑权限
  • 单击安全性选项卡
  • 单击编辑按钮
  • 将出现一个消息框,说明权限排序不正确
  • 在该消息框上单击重新排序
  • 解决方案2

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

    icacls.exe C:\inetpub\wwwroot /verify /T /C /L /Q
    icacls.exe C:\inetpub\wwwroot /reset /T /C /L /Q
    
    注意:可能您希望以管理员权限打开CMD(可能我不确定)


    Cheers

    您可以运行以下命令来修复它

    命令提示

    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
    
    icacls.exe C:\inetpub\wwwroot\/verify/T/C/L/Q
    //如果有任何条目被报告为不符合规范顺序,则运行:
    icacls.exe C:\inetpub\wwwroot\/reset/T/C/L/Q
    

    powershell

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

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

    <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
    
    False
    
    好吧,这很管用,但为什么管用呢?错误是什么意思?在最新版本中,单击“高级”按钮后,“重新排序”选项可用。