星期一, 四月 20, 2009

IIS 7五大核心元件之4: 設定存放區 (configuration store)

IIS 7改變上一版將設定資訊存在XML格式的metabase的作法,而將設定資訊儲存在XML格式檔案,這些設定檔案不僅可以放置適當的地方,也整合了IIS和ASP.NET的設定。

這些階層且分散式的設定檔是與網站或應用程式內容存放在一起,因此大幅簡化了網站或應用程式的部署,而且也能讓系統管理人員在不需釋出管理權限的情況下,即可將網站或應用程式的管理委託給使用者;此外,IIS 7的設定檔也能讓Web伺服陣列以更簡單的方式共用設定資訊。

IIS 7的設定檔包括:

  • .NET Framework全域的設定檔machine.config
  • ASP.NET全域的設定檔,也就是最上層的web.config
  • IIS全域的設定檔applicationHost.config(位於%SystemRoot%\system32\Inetsrv\Config)
  • 站台的設定檔web.config
  • 分散在Web站台、應用程式、目錄等位置的設定檔web.config

下圖是這些設定檔的階層關係:

 

雖然IIS 7的設定檔都是純文字的XML檔案,能以文字編輯器或XML編輯器編修內容,但一般並不建議直接修改,而是建議利用管理工具間接更改。微軟提供的IIS 7管理工具包括了圖形化的『IIS管理員』、文字模式的Appcmd.exe;如果想要程式化的IIS 7管理功能,也提供了C++程式可用的COM API、.NET程式可用的.NET API(Microsoft.Web.Administration,『IIS管理員』多數功能是以實作),指令碼程式則可利用WMI。這些管理工具及可程式化功能的實作從屬關係如下圖所示:

IIS 6與IIS 7是以不同的方式儲存設定資料,為了回溯相容,IIS 7提供Metabase Compatibility功能,這會安裝能夠讀、寫IIS 6 metabase的IIS Administration Service(IISADMIN),以及用來執行IISADMIN服務的程式Inetinfo.exe。這兩個元件提供了稱為Admin Base Objects(ABO)Mapper的轉換能力,能支援傳統的ABO API處理metabase,但可將設定直接存入IIS 7設定檔。

2 意見:

Will 保哥 提到...

有錯字:
而且也能讓系統管理人員在不需事出管理權限的情況下

而且也能讓系統管理人員在不需釋出管理權限的情況下

賴榮樞 提到...

感謝保哥指正,已更正錯字。