4
本次錯誤webservice發布新服務器后,出現此錯誤。
解決方法:
找到dmp文件
dmp文件是啥?自己百度。簡單的說就是黑匣子,記錄程序崩潰前的操作,那么如何找到這個黑匣子呢?
1、啟動 Windows Error Reporting Service 服務
2、執行下面注冊表腳本,設置w3wp.exe 崩潰時自動抓取dmp文件,批處理條件
rem 可根據實際情況修改磁盤路徑DMPPATH=d:\dumps
SET DMPPATH=c:\dumps
SC CONFIG WerSvc START= AUTO
NET START WerSvc
ECHO 啟用完成
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger /f
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger /f
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger /f
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger /f
ECHO 刪除完成
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.exe" /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.exe" /t REG_SZ /v DumpFolder /d %DMPPATH% /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.exe" /t REG_DWORD /v DumpCount /d 2 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.exe" /t REG_DWORD /v DumpType /d 2 /f
ECHO 啟用完成
PAUSE
3、查看dmp文件
IIS崩潰后,在C:\dumps文件夾能看到dmp文件,可以用於分析dmp文件,找出IIS崩潰的原因。
調試dmp文件
如何調試dmp文件,這就不得不請出宇宙第一IDE,VS了,我用的vs2013來調試,可以直接打開dmp文件
1、雙擊DMP文件會直接進入VS,可以看到Summary信息
2、可選步驟:設置符號路徑
3、設置關聯源代碼路徑,這步是必須的
4、一切就緒,點擊“調試托管內存”
備注:vs2017上沒有調試托管內存,可以用
5、查看異常原因,確認異常位置
原來是log日志寫入文件沒有權限。。。。。