|
|
|
|
|
前幾天在一個IIS6.0上配置兩個網(wǎng)站,本以為很簡單,因為配置了10多年,非常熟悉了,但是當(dāng)配置完畢運行后,卻出現(xiàn)了從沒遇到過的問題:兩個網(wǎng)站不能同時運行,當(dāng)先訪問A站,再訪問B站時就報應(yīng)用程序錯誤,反之,重啟IIS后,先訪問B站,那么再訪問A站就報應(yīng)用程序錯誤。
為什么兩個網(wǎng)站不能共存?
兩個網(wǎng)站一個使用.net2.0環(huán)境,一個使用.net4.0環(huán)境,難道不能這樣?但是我想到虛擬主機不都允許自主切換.net版本嗎?這說明兩個環(huán)境是可以同時運行的。
使用獨立應(yīng)用程序池解決問題
找不出原因的情況下,就是進行各種嘗試,碰運氣了。難道兩個不同運行環(huán)境的網(wǎng)站不能共用一個應(yīng)用程序池?我于是新建一個應(yīng)用程序池,這樣兩個網(wǎng)站就分別獨立使用一個應(yīng)用程序池,配置完畢后,問題終于得意解決。
兩個網(wǎng)站獨立使用一個應(yīng)用程序池
如何創(chuàng)建和為網(wǎng)站指派應(yīng)用程序池
如果你還不知怎樣創(chuàng)建和指派應(yīng)用程序池,請繼續(xù)往下看。
IIS應(yīng)用程序池詳解
什么是應(yīng)用程序池呢?這是微軟的一個全新概念:應(yīng)用程序池是將一個或多個應(yīng)用程序鏈接到一個或多個工作進程集合的配置。因為應(yīng)用程序池中的應(yīng)用程序與其他應(yīng)用程序被工作進程邊界分隔,所以某個應(yīng)用程序池中的應(yīng)用程序不會受到其他應(yīng)用程序池中應(yīng)用程序所產(chǎn)生的問題的影響。
Windows 2003同時支持兩種工作模式,默認(rèn)為ISS 6.0工作進程隔離模式。工作進程隔離模式防止一個應(yīng)用程序或站點停止了而影響另一個應(yīng)用程序或站點,大大增強了IIS的可靠性。那么如何設(shè)置兩種工作模式呢?
啟動IIS管理器,右擊網(wǎng)站,選擇“屬性”,打開屬性對話框。
在IIS 6.0工作進程隔離模式下,所有的應(yīng)用程序代碼都在隔離環(huán)境中運行,它們是如何進行隔離的呢?Windows 2003新增了應(yīng)用程序池,工作進程隔離模式允許客戶創(chuàng)建多個應(yīng)用程序池,每個應(yīng)用程序池都可以有不同的配置。因為這些應(yīng)用程序池直接從內(nèi)核(而非WWW服務(wù))接收它們的請求,所以性能和可靠性得到了增強。要隔離運行在同一臺計算機上但屬于不同網(wǎng)站的Web應(yīng)用程序,需要為每個網(wǎng)站創(chuàng)建單獨的應(yīng)用程序池。
創(chuàng)建應(yīng)用程序池
在IIS管理器中,展開“本地計算機”,右鍵單擊“應(yīng)用程序池”,選擇新建“應(yīng)用程序池” 。
新建應(yīng)用程序池
“應(yīng)用程序池名稱”框中,輸入新的應(yīng)用程序池名稱。如果在“應(yīng)用程序池 ID”框中出現(xiàn)的 ID (如:AppPool #1)不是您想要的,可進行重命名。如果您單擊了“將現(xiàn)有應(yīng)用程序池作為模板”,請在“應(yīng)用程序池名稱”框中右鍵單擊想要用來作為模板的應(yīng)用程序池。
輸入應(yīng)用程序池名稱
最后單擊“確定”按鈕。
指派應(yīng)用程序池
新建了應(yīng)用程序后,需要指派給網(wǎng)站。
在 IIS 管理器中,右鍵單擊您要為其指派應(yīng)用程序池的應(yīng)用程序,然后單擊“屬性”。
設(shè)置網(wǎng)站屬性
單擊“主目錄”選項卡,在“應(yīng)用程序池”列表框中,選擇您想要為其指派的應(yīng)用程序池的名稱。
指定應(yīng)用程序池
最后單擊“確定”。