資源描述:
《什么是應(yīng)用程序池呢》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、什么是應(yīng)用程序池呢?這是微軟的一個(gè)全新概念:應(yīng)用程序池是將一個(gè)或多個(gè)應(yīng)用程序鏈接到一個(gè)或多個(gè)工作進(jìn)程集合的配置。因?yàn)閼?yīng)用程序池中的應(yīng)用程序與其他應(yīng)用程序被工作進(jìn)程邊界分隔,所以某個(gè)應(yīng)用程序池中的應(yīng)用程序不會(huì)受到其他應(yīng)用程序池中應(yīng)用程序所產(chǎn)生的問題的影響。???????????Windows?2003同時(shí)支持兩種工作模式,默認(rèn)為ISS?6.0工作進(jìn)程隔離模式。工作進(jìn)程隔離模式防止一個(gè)應(yīng)用程序或站點(diǎn)停止了而影響另一個(gè)應(yīng)用程序或站點(diǎn),大大增強(qiáng)了IIS的可靠性。那么如何設(shè)置兩種工作模式呢????????????啟動(dòng)IIS管理器,右擊網(wǎng)站,選擇“屬性”,打開屬性
2、對(duì)話框(圖1)。??在IIS?6.0工作進(jìn)程隔離模式下,所有的應(yīng)用程序代碼都在隔離環(huán)境中運(yùn)行,它們是如何進(jìn)行隔離的呢?Windows?2003新增了應(yīng)用程序池,工作進(jìn)程隔離模式允許客戶創(chuàng)建多個(gè)應(yīng)用程序池,每個(gè)應(yīng)用程序池都可以有不同的配置。因?yàn)檫@些應(yīng)用程序池直接從內(nèi)核(而非WWW?服務(wù))接收它們的請(qǐng)求,所以性能和可靠性得到了增強(qiáng)。要隔離運(yùn)行在同一臺(tái)計(jì)算機(jī)上但屬于不同網(wǎng)站的Web應(yīng)用程序,需要為每個(gè)網(wǎng)站創(chuàng)建單獨(dú)的應(yīng)用程序池。??????????創(chuàng)建應(yīng)用程序池??????????在IIS管理器中,打開本地計(jì)算機(jī),右鍵單擊“應(yīng)用程序池”,選擇新建“應(yīng)用程序池”
3、?(必須在工作進(jìn)程隔離模式下才能建立應(yīng)用程序池)?。“應(yīng)用程序池名稱”框中,輸入新的應(yīng)用程序池名稱。如果在“應(yīng)用程序池?ID”框中出現(xiàn)的?ID?(如:AppPool?#1)不是您想要的,可進(jìn)行重命名。如果您單擊了“將現(xiàn)有應(yīng)用程序池作為模板”,請(qǐng)?jiān)凇皯?yīng)用程序池名稱”框中右鍵單擊想要用來作為模板的應(yīng)用程序池。最后單擊[確定]。??????????指派應(yīng)用程序池?在?IIS?管理器中,右鍵單擊您要為其指派應(yīng)用程序池的應(yīng)用程序,然后單擊“屬性”。?單擊“主目錄”選項(xiàng)卡,確認(rèn)您正在指派的目錄或虛擬目錄的“應(yīng)用程序名”是否已被填寫。如果“應(yīng)用程序名”框尚未被填寫,
4、請(qǐng)單擊“創(chuàng)建”,然后輸入名稱。?在“應(yīng)用程序池”列表框中,選擇您想要為其指派的應(yīng)用程序池的名稱。最后單擊[確定]。???一起來看看有關(guān)應(yīng)用程序池的一些問題。應(yīng)用程序池的“屬性”對(duì)話框有四頁——回收,性能,運(yùn)行狀況,標(biāo)識(shí),如圖六所示。在這些選項(xiàng)頁中,最引人注目的恐怕就是“回收”頁,使用該選項(xiàng)頁可以管理工作進(jìn)程的回收。在工作進(jìn)程隔離模式中,IIS可以配置成定期重新啟動(dòng)應(yīng)用程序池中的工作進(jìn)程,從而更好地管理那些有錯(cuò)誤的工作進(jìn)程。這確保了池中的應(yīng)用程序運(yùn)行正常,并且可以恢復(fù)丟失的系統(tǒng)資源。為了回收工作進(jìn)程,失敗工作進(jìn)程接收請(qǐng)求的能力將被限制,直到它處理完存儲(chǔ)在
5、請(qǐng)求隊(duì)列中的所有剩余請(qǐng)求。為了排出當(dāng)前請(qǐng)求,可以給予進(jìn)程配置限制。同一命名空間組的替換工作進(jìn)程在舊的工作進(jìn)程停止前啟動(dòng),從而防止服務(wù)中斷。舊的進(jìn)程完成其未決的請(qǐng)求,然后正常關(guān)閉,或者如果在達(dá)到了配置的時(shí)間限制、請(qǐng)求數(shù)、設(shè)置的時(shí)間計(jì)劃,或當(dāng)達(dá)到指定的內(nèi)存用量限制后仍沒有關(guān)閉,則明確地終止進(jìn)程。默認(rèn)情況下,應(yīng)用程序池每隔1740分鐘(29小時(shí))回收一次。???W3SVC根據(jù)“運(yùn)行狀況”頁的選項(xiàng)來判斷應(yīng)用程序池運(yùn)行是否正常,包括:每隔指定的時(shí)間Ping工作進(jìn)程,時(shí)間按秒計(jì),默認(rèn)值30秒啟動(dòng)時(shí)間限制(工作進(jìn)程必須在指定的時(shí)間內(nèi)開始)關(guān)閉時(shí)間限制(工作進(jìn)程必須在
6、指定的時(shí)間內(nèi)關(guān)閉)是否啟動(dòng)快速失敗保護(hù)(如果在指定的時(shí)間段內(nèi)一定數(shù)目的工作進(jìn)程發(fā)生失敗,則禁用應(yīng)用程序池)。另外,ISAPI應(yīng)用程序(包括ASP.NET和asp.dll)可以聲明自己不再適合提供服務(wù),要求回收。???默認(rèn)情況下,當(dāng)IIS?6.0回收一個(gè)池時(shí),它會(huì)使用一種稱為overlapped?recycle的回收技術(shù)。在這種回收模式下,失敗的工作進(jìn)程仍會(huì)保持運(yùn)行狀態(tài),同時(shí)創(chuàng)建一個(gè)新的工作進(jìn)程。IIS?6.0把新傳入的請(qǐng)求傳遞給新的工作進(jìn)程,但不拆除老的工作進(jìn)程,直至老的工作進(jìn)程處理完它隊(duì)列中的請(qǐng)求,或者遇到超時(shí)錯(cuò)誤。在此期間,TCP/IP連接不會(huì)丟失
7、,因?yàn)橛衕ttp.sys保持著連接的有效性。當(dāng)失敗的工作進(jìn)程超時(shí)出錯(cuò)時(shí),下一個(gè)請(qǐng)求傳遞給工作進(jìn)程的請(qǐng)求是新的請(qǐng)求,因此原來保存在進(jìn)程中的會(huì)話信息就會(huì)丟失。所有這類回收操作都自動(dòng)進(jìn)行,無需管理員干預(yù),而且在大多數(shù)情況下,不會(huì)造成明顯的服務(wù)中斷現(xiàn)象。如有必要,可以將配置數(shù)據(jù)屬性?LogEventOnRecycle的值設(shè)置為1,指示W(wǎng)3SVC執(zhí)行回收操作時(shí)生成一條事件日志記錄。???對(duì)于那些不能以多個(gè)實(shí)例運(yùn)行的應(yīng)用程序,overlapped?recycle回收技術(shù)可能引起問題。如果遇到這類問題,可以將配置數(shù)據(jù)屬性DissallowOverlappingRot
8、ation的值設(shè)置成?True(1),關(guān)閉某個(gè)應(yīng)用程序池回收操作時(shí)的進(jìn)程“重疊”現(xiàn)象。另外,對(duì)