2009-05-26 42 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可能無法按預期的方式工作。

另外請記住,如果您在服務器級別對模塊進行了更改,則該站點將不再繼承這些模塊,您還必須將它們應用於站點級別。