常見的情況是網(wǎng)站訪問(wèn)量大了iis溢出,這往往容易讓人造成錯(cuò)覺(jué),iis 一溢出就以為是網(wǎng)站訪問(wèn)量大了所致,結(jié)果按這個(gè)方向去找原因,花費(fèi)大量時(shí)間卻無(wú)果而終,更為嚴(yán)重的是 iis 一溢出彈出一個(gè)等待選擇“確定”還是“取消”窗口,網(wǎng)站使用的應(yīng)用池隨之停止工作,所有動(dòng)態(tài)網(wǎng)頁(yè)都打不開了,嚴(yán)重影響網(wǎng)站的用戶體驗(yàn)和在搜索引擎中的排名,可能因此排名一瀉千里。
其實(shí),除網(wǎng)站訪問(wèn)量提升導(dǎo)致 iis溢出外,網(wǎng)站程序代碼錯(cuò)誤會(huì)更頻繁的引發(fā) iis溢出,并且常常是要選擇“確定”還是“取消”的這種情況,所以影響十分大,即使網(wǎng)站有專門的管理員,也不可能一天24小時(shí)守著單擊“確定”,所以找到 iis溢出原因(代碼錯(cuò)誤)十分必要。
一、網(wǎng)站程序代碼錯(cuò)誤引發(fā)的iis溢出系統(tǒng)日志的提示
這個(gè)可以在事件查看器中找到,一般有兩處,一處是應(yīng)用程序日志,另一處是系統(tǒng)日志。
1、應(yīng)用程序日志iis溢出提示
事件類型: 錯(cuò)誤
事件來(lái)源: .NET Runtime
事件種類: 無(wú)
事件 ID: 1024
日期: 2014-12-25
時(shí)間: 11:38:42
用戶: N/A
計(jì)算機(jī): WL93000683563
描述:
.NET Runtime version : 4.0.30319.1022 - Application ErrorApplication has generated an exception that could not be handled.Process ID=0x564 (1380), Thread ID=0x7bc (1980).
Click OK to terminate the application.
Click CANCEL to debug the application.
事件類型: 錯(cuò)誤
事件來(lái)源: .NET Runtime
事件種類: 無(wú)
事件 ID: 1027
日期: 2014-12-25
時(shí)間: 11:38:41
用戶: N/A
計(jì)算機(jī): WL93000683563
描述:
Application: w3wp.exe Framework Version: v4.0.30319
Description: The process was terminated due to stack overflow.
2、系統(tǒng)日志iis溢出提示
事件類型: 警告
事件來(lái)源: W3SVC
事件種類: 無(wú)
事件 ID: 1011
日期: 2014-12-26
時(shí)間: 11:15:57
用戶: N/A
計(jì)算機(jī): WL93000683563
描述: 為應(yīng)用程序池 'xx' 提供服務(wù)的進(jìn)程在與 World Wide Web Publishing 服務(wù)通信時(shí)遇到致命錯(cuò)誤。進(jìn)程 ID 為 '2412'。數(shù)據(jù)字段包含錯(cuò)誤號(hào)。
二、iis溢出錯(cuò)誤分析
從應(yīng)用程序日志看不出是什么問(wèn)題,系統(tǒng)日志卻提示了錯(cuò)誤:“數(shù)據(jù)字段包含錯(cuò)誤號(hào)。”。它提示我們,類的數(shù)據(jù)成員定義有誤,例如:
Public string userName;
Public string UserName
{
Get{ return UserName;}
}
應(yīng)該是反回 userName,而不是 UserName,只有一個(gè)微小的字母大小寫的區(qū)別,稍不留意就會(huì)出錯(cuò)。改正這個(gè)錯(cuò)誤后,就不會(huì)出現(xiàn)因“數(shù)據(jù)字段包含錯(cuò)誤號(hào)”而引發(fā)iis溢出。 |