網站、Web應用程序和虛擬目錄
在IIS中可以創建網站、Web 應用程序和虛擬目錄,以便與計算機網絡上的用戶共享信息。
“網站”、“Web 應用程序”和“虛擬目錄”這三個概念的關系如圖 8‑1所示。
一個“網站(Web Site)”包含一個或多個“ Web 應用程序(Web Application)”
一個Web 應用程序包含一個或多個“虛擬目錄(Virtual Directory)”
虛擬目錄則映射到 Web 服務器或遠程計算機上的物理目錄。
圖中可以清楚地看到此Web服務器上有兩個“網站”:Default Web Site和NewWebSite,
其中Default Web Site網站中有三個“Web 應用程序”:HappyBookShopService、HappyBookShopWebSite和OnlineAlbum。
而HappyBookShopWebSite應用程序下的每一個子文件夾都是一個“虛擬目錄”。
最頂層的虛擬目錄稱為“根虛擬目錄”, 圖 中Web應用程序HappyBookShopWebSite的根虛擬目錄為“/HappyBookShopWebSite”。
1網站(Web Site)
網站是 Web 應用程序的容器,每個網站都有一個唯一的標識,由IP 地址、端口和可選的主機頭/主機名組合而成,Web服務器根據收到的HTTP請求中的這些信息來確定是對哪一個網站的請求。在IIS 7中,將網站標識稱為“網站綁定”,下圖所示為IIS 7默認網站的“網站綁定”對話框。
2 Web 應用程序(Web Application)
Web 應用程序是一種在應用程序池(Application Pool)中運行並通過 HTTP 協議向用戶提供信息服務的軟件程序。
創建 Web 應用程序時,Web 應用程序的名稱將成為網站 URL 的一部分,用戶可以通過 Web 瀏覽器發出針對該 URL的HTTP請求。
在 IIS中,每個網站至少必須擁有一個 Web 應用程序(但不一定是ASP.NET應用程序,可以是其他類型的Web應用程序),它被稱為“根Web 應用程序”或“默認 Web 應用程序”,除此之外,網站還可以包含一個或多個ASP.NET(或其他種類) Web 應用程序。
在Windows XP SP2中用Visual Studio創建的ASP.NET網站發布到本機IIS之后都是作為本機默認網站(即“localhost”所代表的網站)所承載的Web應用程序而運行的。
Windows Server和Vista可以為某個ASP.NET應用程序創建一個獨立的IIS網站,此網站只承載這個唯一的ASP.NET應用程序,並且運行在一個獨立的應用程序池中。許多商業網站都采用這種方法以獲取較高的性能,同時將此網站與Web服務器上承載的其他網站相互隔離,以增強Web服務器的安全性。
3 虛擬目錄(Virtual Directory)
虛擬目錄是在 IIS 中指定並映射到本地或遠程服務器上的物理目錄的目錄名稱。此虛擬目錄名稱將成為Web 應用程序 URL 的一部分,用戶可以通過 Web 瀏覽器向IIS請求訪問此URL所對應的物理目錄中的資源。
在 IIS中,每個 Web 應用程序都必須擁有一個最頂層的虛擬目錄,它被稱為“根虛擬目錄”。
一個Web 應用程序可以擁有多個虛擬目錄,這些虛擬目錄都將成為Web 應用程序根虛擬目錄的子目錄。
在IIS 7中創建一個虛擬目錄
給Web應用添加完虛擬目錄之后,可以通過以下URL訪問虛擬目錄中的網頁
http://網站名稱/Web應用程序根虛擬目錄/新創建的子虛擬目錄/Web網頁名稱
例子中,Web應用程序根虛擬目錄為“/MyNewWebSite”,新加的虛擬目錄為“MyNewVirtualDir”,它指向“D:/MyDir”目錄。
現假設D:/MyDir目錄中有一個ASP.NET網頁(設為Sample.aspx),則通過以下URL可以訪問此網頁:
http://localhost/MyNewWebSite/MyNewVirtualDir/Sample.aspx
另外在Visual Studio中,可以在屬性窗口中直接設定ASP.NET網站的根“虛擬路徑”。
但要注意,這里設定的“虛擬路徑”是Visual Studio自帶的輕量級Web服務器“ASP.NET Development Server”的虛擬路徑,而非IIS中的虛擬路徑。如果使用Visual Studio完整版本則可以使用一個“發布網站”的功能。在使用此功能發布網站時可以直接指定ASP.NET應用程序在IIS中所對應的根虛擬目錄。
設定IIS中ASP.NET網站的根虛擬目錄圖 中將ASP.NET網站所對應的IIS根虛擬目錄設為MyNewWebSite。