IIS應(yīng)用程序池崩潰的解決方案
IIS是微軟開發(fā)的Web服務(wù)器軟件,被廣泛用于Windows平臺(tái)上的網(wǎng)站托管。在使用IIS過程中,可能會(huì)遇到應(yīng)用程序池崩潰的問題,原因可能有很多,包括代碼錯(cuò)誤、資源不足、進(jìn)程沖突等。本文將為大家介紹IIS應(yīng)用程序池崩潰的問題分析和解決方案。如果您在IIS的Events日志下觀察到以下任一事件,那么本文適合您。
遇到這個(gè)問題是我在升級(jí)項(xiàng)目版本的時(shí)候,升級(jí)后的版本網(wǎng)頁(yè)功能雖然可以正常使用,但每隔幾分鐘程序池就會(huì)忽然崩潰,導(dǎo)致訪問503報(bào)錯(cuò),我登陸IIS管理器查看,該應(yīng)用掛載的應(yīng)用池狀態(tài)自動(dòng)變?yōu)榱薙topped。
一、確認(rèn)程序池崩潰原因
a) 滿足下面兩個(gè)特征的IIS程序池崩潰是本文可以解決的,其崩潰原因是應(yīng)用程序內(nèi)部反復(fù)報(bào)錯(cuò),一般是短時(shí)間超過五次,導(dǎo)致IIS自動(dòng)關(guān)閉程序池。
b) 如果不滿足這兩個(gè)條件,那就不是程序報(bào)錯(cuò)導(dǎo)致的,后面的內(nèi)容也就不用看了。
1、應(yīng)用池崩潰后,網(wǎng)頁(yè)訪問提示503。
2、查看IIS的Events里有無錯(cuò)誤。
通常報(bào)錯(cuò)為:
A process serving application pool ‘Classic .NET AppPool’ suffered a fatal communication error with the Windows Process Activation Service. The process id was ‘3328’. The data field contains the error number.
我在Server Manager>IIS>Events下查看,這里是有報(bào)錯(cuò)的。
二、查找問題來源并修復(fù)
1、下載 DebugDiag 插件
這里我們下載一個(gè)插件 Debug Diagnostic Tool (點(diǎn)擊此處跳轉(zhuǎn)下載頁(yè)面),通過這個(gè)插件,我們可以在IIS的錯(cuò)誤事件發(fā)生時(shí)捕獲更加詳細(xì),應(yīng)用級(jí)別的日志。
點(diǎn)擊download下載,選擇32還是64位,下載msi鏡像,下載成功之后安裝。
2、配置 DebugDiag 的斷點(diǎn)信息
安裝成功之后我們打開安裝好的 DebugDiag 2 Analysis 程序,按照下面步驟添加斷點(diǎn)。
選擇“crash (崩潰)”規(guī)則。
選擇“A specific IIS web application pool (特定 IIS Web 應(yīng)用程序池)”
選擇崩潰的特定應(yīng)用程序池。
選擇“Breakpoint (斷點(diǎn))”
點(diǎn)擊“添加斷點(diǎn)”
單擊 Breakpoint 下的“Ntdll!ZwTerminateProcess”,將其選為 Breakpoint Expression。將 Action Type 更改為“Full userdump”并將 Action Limit 設(shè)置為 10,然后單擊 OK。
點(diǎn)擊保存并關(guān)閉。
點(diǎn)擊下一步以激活斷點(diǎn)。
點(diǎn)擊“Next”,配置日志路徑
單擊“Finish”以激活規(guī)則。
您現(xiàn)在會(huì)看到崩潰規(guī)則處于活動(dòng)狀態(tài)并且“Userdump Count”為0。一旦問題發(fā)生,轉(zhuǎn)儲(chǔ)計(jì)數(shù)就會(huì)增加,并會(huì)生成相應(yīng)的轉(zhuǎn)儲(chǔ)文件。
3、復(fù)現(xiàn)崩潰場(chǎng)景,查看問題日志
我們復(fù)現(xiàn)了出現(xiàn)問題的場(chǎng)景,IIS應(yīng)用池再次崩潰,網(wǎng)頁(yè)503無法訪問,DebugDiag Tool的“Userdump Count”變?yōu)榱?0,表示程序池崩潰前程序已經(jīng)出錯(cuò)了10次。
我們根據(jù)剛剛配置的日志路徑,找到對(duì)應(yīng)這個(gè)問題應(yīng)用池的日志文件。
打開日志文件,我們看到了應(yīng)用運(yùn)行中的種種報(bào)錯(cuò),找到反復(fù)高頻報(bào)錯(cuò)的點(diǎn),然后修復(fù)即可。
我這里有兩個(gè)異常,一個(gè)是Ibatis映射的對(duì)象屬性沒有對(duì)上,導(dǎo)致的工廠加載時(shí)報(bào)錯(cuò)。另一個(gè)是空指針異常,因?yàn)橛袀€(gè)全局變量在全局線程里反復(fù)調(diào)用,但配置文件里忘記配置了。兩個(gè)都是因?yàn)榇中膶?dǎo)致的烏龍問題 = =。
到此這篇關(guān)于IIS應(yīng)用程序池崩潰的解決方案的文章就介紹到這了,更多相關(guān)IIS應(yīng)用程序池崩潰內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
HDwiki 5.1下iis的rewrite規(guī)則分享
本功能對(duì)服務(wù)器環(huán)境有特殊要求,獨(dú)立主機(jī)用戶需要對(duì) Web 服務(wù)器增加相應(yīng)的 Rewrite 規(guī)則,因此需要服務(wù)器權(quán)限才可使用2012-10-10如何在IIS環(huán)境下配置Rewrite規(guī)則 圖文
URL 靜態(tài)化可以提高搜索引擎抓取,開啟本功能需要對(duì) Web 服務(wù)器增加相應(yīng)的 Rewrite 規(guī)則,且會(huì)輕微增加服務(wù)器負(fù)擔(dān)。本教程講解如何在 IIS 環(huán)境下配置各個(gè)產(chǎn)品的 Rewrite 規(guī)則。2011-08-08IIS7.5下301重定向的設(shè)置方法(及偽靜態(tài)后301重定向出錯(cuò)案例)
301重定向,網(wǎng)絡(luò)上的知識(shí)已經(jīng)很多了,我在這第一次實(shí)踐過程中,出現(xiàn)了一個(gè)算是低級(jí)的錯(cuò)誤,但也比較典型,也許其它新手也會(huì)碰到,分享一下2013-08-08IIS多個(gè)協(xié)議?顯示一個(gè)問號(hào)問題的修改方法
一般用iis默認(rèn)站點(diǎn)就會(huì)提示網(wǎng)站標(biāo)題上多了個(gè)問號(hào),鼠標(biāo)移上去會(huì)提示多個(gè)協(xié)議,雖然對(duì)網(wǎng)站使用沒有什么影響,但多個(gè)問號(hào)就是不順眼,所以這里為大家分享一下去除提示的方法2023-03-03iis提示尚未創(chuàng)建默認(rèn)SSL站點(diǎn),若要支持不帶SNI 功能的瀏覽器,建議創(chuàng)建一個(gè)默認(rèn)SSL站點(diǎn)
今天在配置域名網(wǎng)站證書的時(shí)候提示尚未創(chuàng)建默認(rèn)SSL站點(diǎn),若要支持不帶SNI 功能的瀏覽器,建議創(chuàng)建一個(gè)默認(rèn)SSL站點(diǎn),今天就簡(jiǎn)單為大家介紹一下2024-03-03IIS6 w3wp.exe進(jìn)程占用cpu和內(nèi)存過多的解決方法
今天有朋友問我他的服務(wù)器網(wǎng)站訪問很卡,內(nèi)存及CPU占用不能及時(shí)釋放,從而導(dǎo)致服務(wù)器響應(yīng)速度很慢,這里簡(jiǎn)單介紹下,方便需要的朋友2013-12-12遠(yuǎn)程分析win2003 IIS安全設(shè)置
遠(yuǎn)程分析win2003 IIS安全設(shè)置...2007-12-12win7和win2008 r2下配置IIS7(ASP.net運(yùn)行環(huán)境)
這篇文章主要介紹了win7和win2008 r2下配置IIS7(ASP.net運(yùn)行環(huán)境) ,需要的朋友可以參考下2014-12-12Jira7.10.1在Windows環(huán)境下的安裝和配置教程圖解
JIRA中配置靈活、功能全面、部署簡(jiǎn)單、擴(kuò)展豐富。這篇文章主要介紹了Jira7.10.1在Windows環(huán)境下的安裝和配置教程圖解,需要的朋友可以參考下2018-06-06