﻿# 利用 [伺服器管理] 無法新增或移除角色或功能的問題 (IIS7)

前幾天再安裝設定 Windows Server 2008 主機時，在安裝到 .NET Framework 3.5 功能時無論如何都無法安裝成功的情況，連新增或移除特定 IIS 角色服務也都會失敗，整個錯誤訊息 (如下圖) 就是無法理解，花了幾個小時的時間才發現因為 IIS7 共用設定的關係讓所有與 IIS7 相關的功能或角色服務都無法安裝成功！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/43e159a91198df64cc9a-image.png)

如果單純只是安裝 IIS 元件失敗的話當時可能會想到與 IIS 有關，但當時我安裝的卻是 .Net Framework 3.5.1 功能，當時壓根沒想到原來是我的 IIS7 共用設定導致安裝問題。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/dc103891458aeaa32d1c-image.png)

最後查詢到 [KB 954856](https://web.archive.org/web/20130618122019/http://support.microsoft.com/kb/954856/en-us) 才發現原來就是因為我設定了「共用設定」的關係才導致所有與 IIS 有關的元件全部都無法安裝或移除，這個問題即便到了 Windows Server 2008 R2 ( IIS 7.5 ) 還是依然存在，而且這個問題已經被微軟確認為是一個 Bug。

問題發生的原因在於 \[共用設定\] 的實體路徑是在 UNC 路徑上，由於安裝 IIS 相關元件時所使用的權限為 NT AUTHORITY\\SYSTEM (本機系統)，所以無法存取網路上的資源，這導致要修改 IIS 設定時會導致因為無法變更 applicationHost.config 的內容而發生權限不足的問題而導致失敗！

就算錯誤是合理的，但這錯誤訊息也未免太難以理解 = =』』

雖然微軟的 [KB 954856](https://web.archive.org/web/20130618122019/http://support.microsoft.com/kb/954856/en-us) 有提供權宜之計(Workaround)，但我認為該文件並沒有寫完整，反而會讓需要使用共用設定的人發生其他莫名的錯誤，因此請建議用我的方式進行設定：

1\. 關閉 \[共用設定\]

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/06828e5a1347b622597a-image.png)

2\. 關閉 \[共用設定\] 時，會跳出一個對話方塊來，請務必選取 \[是(Y)\] 好讓目前最新版的 applicationHost.config 能夠複製回本機！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9632ed0a9bfa85032d16-image.png)

3\. 這時在進一步安裝或移除 IIS 相關的功能或角色服務

**注意:** 由於在安裝 IIS 相關功能或角色服務時會連帶異動 applicationHost.config 的內容，所以 UNC 上的 applicationHost.config 將不會有異動的部分。

例如你安裝一個 IIS 角色服務是一個 HttpModule，而安裝完成後本機的 applicationHost.config 會預設載入該模組，但 UNC 上的 applicationHost.config 並沒有載入模組的定義！因此您必須先「匯出設定檔」到 UNC 路徑上才能確保 WebFarm 的設定是對的，而且要記得所有 WebFarm 的主機都要同時做完新增或移除角色服務的動作後再全部一起上線，否則很有可能會遇到設定錯誤的情況！

4\. 重新匯出設定檔

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/afeea7ec16c3366efa2a-image.png)

5\. 重新啟用共用設定

**相關連結**

-   [BUG: You cannot install or uninstall a component in IIS 7.0](https://web.archive.org/web/20130618122019/http://support.microsoft.com/kb/954856/en-us)
-   [Shared Configuration : Managing Shared Configuration : Managing and Maintaining IIS 7.0](https://learn.microsoft.com/en-us/iis/manage/managing-your-configuration-settings/shared-configuration_264)
