“条目无法重新排序,因为其中一个或多个已被锁定在父文件中”
在iis 7.0管理器中,当我尝试更改应用程序中的模块顺序时,它会给出此消息。
如何更改模块的顺序?可能吗?
答案 0 :(得分:3)
你不能在服务器级别而不是站点级别上进行吗?
答案 1 :(得分:2)
要更改站点的模块顺序,首先需要在服务器级别解锁受影响的模块。因为您并不真正知道哪些模块受到影响,所以我通常会解锁它们。最简单的方法是使用PowerShell脚本(如果您仍在IIS7上,则需要下载PowerShell IIS snapin)。
将以下内容保存到文本文件中:unlock-modules.ps1
Import-Module WebAdministration
Get-WebConfiguration `
-pspath 'MACHINE/WEBROOT/APPHOST' `
-filter "system.webServer/modules/add" -recurse | `
where {$_.PSPath -eq 'MACHINE/WEBROOT/APPHOST' -and $_.Type -eq ''} `
| foreach {
$filter = "system.webServer/modules/add[@name='" + $_.Name + "']"
Remove-WebConfigurationLock -pspath 'MACHINE/WEBROOT/APPHOST' -filter $filter -verbose
}
以提升的管理员身份打开PowerShell提示符并运行脚本。
脚本循环遍历服务器级别的所有模块。通常只锁定本机模块(带有'empty'类型'属性)。将它们全部解锁。
现在,您可以在站点级别更改模块的顺序。
重新订购时要小心,如果更改某些系统模块的顺序,IIS可能无法以预期的方式工作。
另外请记住,如果您在服务器级别对模块进行更改,则该站点将不再继承这些模块,您也必须将它们应用于站点级别。