2009-05-26 41 views
6

IIS 7.0中,模块顺序的变化

IIS 7.0的经理,当我试图改变我的应用程序模块的顺序“中的条目不能因为一个或更多的人已被锁定在父文件中重新排序”它给出这个消息。

我该如何更改模块的顺序?可能吗?

回答

3

难道你不能在服务器级别而不是站点级别执行它吗?

+0

你是什么意思?请提供更多细节。 – Yaya 2009-05-26 12:28:30

+0

而不是在IIS管理器中设置站点级别的模块顺序。在服务器级别执行它。 – MartinHN 2009-05-26 17:28:36

1

要改变模块的顺序为首先需要解锁服务器级别受影响的模块的站点。因为你不知道哪些模块会受到影响,所以我通常会解锁它们。最简单的方法是使用PowerShell脚本(如果您仍然使用IIS7,则需要下载PowerShell IIS snapin)。

保存到下列文本文件:解锁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提示符为提升的管理员并运行该脚本。

该脚本循环遍历服务器级别的所有模块。通常只有本地模块(带有空'type'属性)被锁定。全部解锁它们。现在

您可以更改在现场级模块的顺序。

重新排序时要小心,如果您更改某些系统模块的顺序,IIS可能无法按预期的方式工作。

另外请记住,如果您在服务器级别对模块进行了更改,则该站点将不再继承这些模块,您还必须将它们应用于站点级别。