西西軟件下載最安全的下載網(wǎng)站、值得信賴(lài)的軟件下載站!

首頁(yè)編程開(kāi)發(fā)其它知識(shí) → IIS7中的站點(diǎn)、應(yīng)用程序和虛擬目錄詳細(xì)介紹

IIS7中的站點(diǎn)、應(yīng)用程序和虛擬目錄詳細(xì)介紹

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2013/1/12 15:35:12字體大。A-A+

作者:西西點(diǎn)擊:0次評(píng)論:0次標(biāo)簽: IIS7

  • 類(lèi)型:系統(tǒng)其它大。174.5M語(yǔ)言:中文 評(píng)分:1.6
  • 標(biāo)簽:
立即下載

這里說(shuō)的不是如何解決路徑重寫(xiě)或者如何配置的問(wèn)題,而是闡述一下站點(diǎn)(site),應(yīng)用程序(application)和虛擬目錄(virtual directory)概念與作用,已及這三個(gè)東西在IIS6與IIS7中的異同。因?yàn)檎军c(diǎn),應(yīng)用程序和虛擬目錄是我們?cè)贗IS上架設(shè)網(wǎng)站時(shí)肯定會(huì)遇到的,但它們的概念又是那么的含糊(至少對(duì)我來(lái)說(shuō))。我在網(wǎng)上找了一些資料來(lái)學(xué)習(xí),其中一個(gè)寫(xiě)的比較詳細(xì)的是:Understanding Sites, Applications, and Virtual Directories on IIS 7 而這里則只是作一些總結(jié)。

在IIS6中,應(yīng)用程序和虛擬目錄的概率是有點(diǎn)含糊的,而在IIS7以上,這三者則被規(guī)范化起來(lái),在IIS架構(gòu)層面上明確了三者的層次關(guān)系。

在IIS6中,雖然存在virtual directory 和application兩個(gè)概念,而且看上去這兩個(gè)概念是獨(dú)立的,但是在IIS6中一個(gè)application其實(shí)就是一個(gè)虛擬目錄,只不過(guò)一個(gè)application在medabase中可以對(duì)AppFriendlyName, AppRoot, AppIsolated, AppPoolID這幾個(gè)屬性進(jìn)行設(shè)置而已。但I(xiàn)IS6中的site則是例外,因?yàn)榫退悴粚?duì)那幾個(gè)屬性進(jìn)行設(shè)置,它也不會(huì)被視為虛擬目錄,而是被視為一個(gè)application。

而在IIS7或以上(但目前我能接觸到的最高版本的IIS就是win7中的IIS7.5),site,application和virtual directory的概念已經(jīng)被規(guī)范起來(lái),已經(jīng)不像IIS6那樣含糊。在IIS7+中,他們是獨(dú)立的概念,并且在IIS組織架構(gòu)上呈現(xiàn)出一種層次關(guān)系:一個(gè)site中可以有一個(gè)或者多個(gè)application,一個(gè)application中可以有一個(gè)或者多個(gè)virtual directory,而一個(gè)virtual directory則對(duì)應(yīng)著一個(gè)物理路徑。一個(gè)site默認(rèn)會(huì)至少有一個(gè)application,稱(chēng)為根應(yīng)用程序(root application)或者默認(rèn)應(yīng)用程序(default application),而一個(gè)application至少有一個(gè)vitual director,稱(chēng)為根虛擬目錄(root virtual directory)來(lái)看一下我的IIS7.5上一個(gè)site的結(jié)構(gòu)和這個(gè)site在IIS的ApplicationHost.config文件是怎樣對(duì)應(yīng)的。:

  注:ApplicationHost.config文件在目錄:\%windir%\system\inetsrv\config目錄下

我的IIS中只有一個(gè)ID為13的site,site下有兩個(gè)application分別為cd和dh。從右邊的config中可以看到,其實(shí)除了cd和dh兩個(gè)application外,site本身也是一個(gè)application,也就是root application。同時(shí)也可以看到,每個(gè)application下有一個(gè) virtual directory,也就是root virtual directory,充當(dāng)著這個(gè)application的根目錄,并映射到該application所在的物理路徑。當(dāng)然,每個(gè)application可以有多個(gè)virtual directory,這些virtual directory可以對(duì)應(yīng)其他的物理路徑(譬如dh application下的image虛擬目錄的物理路徑可以使網(wǎng)絡(luò)中另外一臺(tái)計(jì)算機(jī)的某個(gè)共享目錄)

在IIS7+中(其實(shí)IIS6也是一樣,但細(xì)節(jié)有不同,這里有點(diǎn)含糊,還待深入研究),一個(gè)site運(yùn)行在一個(gè)application pool中,而一個(gè)application pool默認(rèn)有一個(gè)w3wp.exe(工作者進(jìn)程),site中的application運(yùn)行在這個(gè)w3wp.exe進(jìn)程中的app domain(應(yīng)用程序域)中(不同application運(yùn)行在不同app domain中,以進(jìn)行隔離),而同一個(gè)application的virtual directory運(yùn)行在相同的app domain下。但site下的application不一定必須跟這個(gè)site運(yùn)行在相同的application pool,application可以指定一個(gè)跟這個(gè)application的site不同的application pool。

接下來(lái)獨(dú)立的闡述一下site,application和virtual derectory

站點(diǎn)(site)

一個(gè)站點(diǎn)包含一個(gè)或者多個(gè)application和一個(gè)或者多個(gè)虛擬目錄。我們可以通過(guò)對(duì)site進(jìn)行不同的綁定以用不同的方式對(duì)site進(jìn)行訪問(wèn)。這里的“綁定”包含兩個(gè)方面,一個(gè)是綁定的協(xié)議,另一個(gè)就是綁定信息。綁定協(xié)議用于指定通過(guò)什么協(xié)議去和該site進(jìn)行通信。IIS7+中,對(duì)一個(gè)site可以的協(xié)議包括http,https,net.tcp,net.pipe,net.msmq,net.formatname這幾種。當(dāng)然,對(duì)于一個(gè)網(wǎng)站,最常用的就是http和https。而綁定信息則定義了通信的基本信息,比如IP地址,通信端口,站點(diǎn)的一些頭部信息(header)。正如前面說(shuō)到的,可以為一個(gè)site添加多種綁定,只需要在IIS中對(duì)某個(gè)site進(jìn)行“編輯綁定”操作即可。

應(yīng)用程序(application)

application是為一個(gè)site提供功能的基本單位,例如一個(gè)購(gòu)物站點(diǎn)可以包含兩個(gè)application:一個(gè)負(fù)責(zé)呈現(xiàn)商品,給消費(fèi)者去選購(gòu),并放入購(gòu)物車(chē),而另一個(gè)appliation則可以專(zhuān)注于用戶(hù)的登錄以及支付業(yè)務(wù)。當(dāng)一個(gè)site只有一個(gè)application時(shí)候,這個(gè)application也就是root application或者default application,代表著這個(gè)site本身,在applicationHost中的“<application path="/" >”里面,path="/"就表示該application是該site的根應(yīng)用程序!

 application運(yùn)行在IIS中的應(yīng)用程序池中,以app domain隔離。application可以運(yùn)行在IIS中任意一個(gè)應(yīng)用程序池中,而不一定要運(yùn)行在這個(gè)application所在的site的應(yīng)用程序池中,但對(duì)于使用托管代碼開(kāi)發(fā)的application(例如一個(gè)asp.net網(wǎng)站)必須運(yùn)行在運(yùn)行在.NET之上的應(yīng)用程序池。可以在IIS中對(duì)應(yīng)用程序池進(jìn)行設(shè)置,包括設(shè)置.NET版本(或者是非托管環(huán)境),以及設(shè)置管道模式等操作。

虛擬目錄(virtual directory)

一個(gè)虛擬目錄就是一個(gè)site(實(shí)際上是application)上的對(duì)一個(gè)本地計(jì)算機(jī)或者遠(yuǎn)程計(jì)算機(jī)上一個(gè)物理目錄路徑的一個(gè)映射名稱(chēng)。一個(gè)application可以擁有至少一個(gè)虛擬目錄。在applicationHost中的“<virtualDirectorypath="/" >”里面,path="/"就表示該virtual directory是該application(或者該site)的根虛擬目錄。

當(dāng)設(shè)置一個(gè)虛擬路徑映射到一個(gè)物理路徑后,這個(gè)物理路徑中的目錄名稱(chēng)就會(huì)變成這個(gè)site(或者application)的url的一部分。一個(gè)site(application)可以擁有多個(gè)虛擬目錄,例如,一個(gè)site中的虛擬目錄"www.site.com/script"映射到本地計(jì)算機(jī)上該站點(diǎn)中script文件夾,而"www.site.com/image"則映射到遠(yuǎn)程圖片服務(wù)器上的一個(gè)“image”文件夾。IIS7+利用虛擬目錄映射的目錄路徑目錄下的web.config配置文件來(lái)管理該虛擬目錄及其子目錄(可以在applicationHost.config的sites/virtualDirectoryDefaults節(jié)中使用allowSubDirConfig="false"屬性來(lái)關(guān)閉web.config對(duì)子目錄的控制。)

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱(chēng):
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
    推薦文章

    沒(méi)有數(shù)據(jù)