国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術(shù)知識庫 >  虛擬主機 >  虛擬主機基礎知識 >  IIS8中的站點(diǎn)、應用程序和虛擬目錄詳細介紹

IIS8中的站點(diǎn)、應用程序和虛擬目錄詳細介紹

2016-12-07 22:39:50 9873

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

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

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

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

3b2be3dc436abd4ae022cf3d4df036e2.jpg

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

我的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,充當著(zhù)這個(gè)application的根目錄,并映射到該application所在的物理路徑。當然,每個(gè)application可以有多個(gè)virtual directory,這些virtual directory可以對應其他的物理路徑(譬如dh application下的image虛擬目錄的物理路徑可以使網(wǎng)絡(luò )中另外一臺計算機的某個(gè)共享目錄)

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

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

站點(diǎn)(site)

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

應用程序(application)

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

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

虛擬目錄(virtual directory)

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

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


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->