IIS 7 基礎觀念:網站、應用程式、與虛擬目錄

在 IIS 6 的時代,「應用程式」(application)和「虛擬目錄」(virtual directory)這兩個東西很像,容易搞混,只在功能上有些不同(應用程式比虛擬目錄多了一些功能)。到了 IIS 7,官方網站上提供了一份文件:Understanding Sites, Applications, and Virtual Directories on IIS 7。這份文件更清楚地解釋了這兩個相似概念,有助於釐清我們的疑問。以下整理一些重點:

虛擬目錄和應用程式在 IIS 7 裡面是不同的物件,而且彼此有上下層的階層關係。簡單地說,一個網站可以有一或多個應用程式,一個應用程式可包含一或多個虛擬目錄,而虛擬目錄會對應至磁碟上的某個實體目錄。在此階層關係當中,虛擬目錄位於最下層。

在 IIS 7 裡面,每個網站至少要有一個應用程式,稱為根應用程式,或預設應用程式。應用程式不僅隸屬於網站,也隸屬於(關聯至)某個應用程式集區(application pool),各應用程式便是透過隸屬不同的集區來達到彼此隔離的效果(一個應用程式當掉不至於影響另一集區中的應用程式)。要注意的是,你的 ASP.NET 應用程式在開發時採用什麼 .NET 版本,將來部署至 IIS 時,它所屬的應用程式集區也必須使用相同的 .NET 版本(例如 .NET Framework 4)。

再來看虛擬目錄。每個應用程式至少要有一個虛擬目錄,稱為根虛擬目錄,而此虛擬目錄所對應到的實體目錄即包含該應用程式的所有內容。虛擬目錄的名稱會成為 URL 的一部分。如前面說的,一個應用程式可以有多個虛擬目錄,因此,一種可能的部署方式,是將應用程式底下的某個虛擬目錄(例如 images)指向應用程式之外的其他實體路徑。

當你透過 IIS 管理員對網站、應用程式、虛擬目錄等相關設定做了變更之後,這些變動都會儲存在 IIS 7.x 的根組態檔:ApplicationHost.config(放在 %windir%\system32\inetsrv\config\ 目錄下)。

如果還是覺得應用程式和虛擬目錄這兩個東西很容易搞混的話,試試看先記住這個差異:應用程式可以設定其所屬之應用程式集區,虛擬目錄則沒有這項功能。


延伸閱讀了解 IIS 7 (on Microsoft TechNet)

2 則留言:

技術提供:Blogger.
回頂端⬆️