重啟服務器IIS服務後發現所有ASP頁面顯示http500錯誤,大汗, IIS中,當將應用程序進程保護設為低時,網站asp程序可以正常運行,但當將應用程序進程保護設為中和高時,asp程序均顯示http500錯誤.
在網上尋找解決方案,說是IWAM用戶密碼不同步的原因造成,但查看日志文件,發現日志裡記錄的描述與IWAM用戶密碼不同步的不一樣, 具體日志如下:
事件類型: 錯誤
事件來源: COM+
事件種類: SVC
事件 ID: 4194
日期: 2005-10-13
事件: 13:02:12
用戶: N/A
計算機: ABCD148
描述:
系統調用了一個客戶自定義組件,該組件已失敗並產生了一個異常錯誤。這說明自定義組件有問題。請將該失敗通知組件的開發者關於並提供他們下列信息。
組件 Prog ID: 服務器應用程序 ID: {3D14228D-FBE1-11D0-995D-00C04FD919C1}服務器應用程序名稱: IIS Out-Of-Process Pooled Applications
該錯誤的嚴重性已導致進程終止。
異常: C0000005
地址: 0x7CF6322E
調用堆棧:
ole32!UpdateDCOMSettings + 0x66BF
ole32!UpdateDCOMSettings + 0x53C7
ole32!UpdateDCOMSettings + 0x4E7C
ole32!OleRegGetUserType + 0x2C3
ole32!UpdateDCOMSettings + 0xD02B
ole32!CoCreateFreeThreadedMarshaler + 0x17E1
ole32!OleRegGetUserType + 0x3B8
RPCRT4!CheckVerificationTrailer + 0x5B
RPCRT4!NdrServerCall2 + 0x25A
RPCRT4!CStdStubBuffer_Invoke + 0xA8
ole32!WdtpInterfacePointer_UserSize + 0x6C2
ole32!WdtpInterfacePointer_UserSize + 0x99D
ole32!UpdateDCOMSettings + 0xB7CE
ole32!CoGetPSClsid + 0x104A
ole32!WdtpInterfacePointer_UserSize + 0x5A7
ole32!WdtpInterfacePointer_UserSize + 0xCCB
ole32!StgGetIFillLockBytesOnFile + 0x1A5E9
RPCRT4!NdrSimpleTypeMarshall + 0x303
RPCRT4!NdrSimpleTypeMarshall + 0x26C
RPCRT4!NdrSimpleTypeMarshall + 0x177
RPCRT4!RpcMgmtSetCancelTimeout + 0x14C8
RPCRT4!RpcMgmtSetCancelTimeout + 0x148B
RPCRT4!NdrConformantArrayFree + 0x5D1
RPCRT4!NdrAllocate + 0x7C8
RPCRT4!UuidCreate + 0x13E
RPCRT4!RpcMgmtSetCancelTimeout + 0xE3
KERNEL32!lstrcmpiW + 0xB7
事件類型: 錯誤
事件來源: COM+
事件種類: SVC
事件 ID: 4097
日期: 2005-10-13
事件: 11:05:35
用戶: N/A
計算機: ABCD148
描述:
運行時環境在其內部狀態檢測到不一致。請向 Microsoft 產品支持服務部門報告此錯誤。*** Error in __FILE__(926): Application image dump failed. C:\WINNT\system32\com\dmp\{3D14228D-FBE1-11D0-995D-00C04FD919C1}_2005_10_13_11_05_35.dmp
經查看具體的HTTP500錯誤,顯示為:
The requested resource is in use
1,權限問題,找到system32下的VBSCRIPT.dll和JSCRIPT.dll給與everyone 讀取,運行權限。
2,依此在國外的網站尋找結果.
發現是VBSCRIPT和JSCRIPT的DLL注冊丟失所致,
依下面的方法重新注冊DLL組件後問題解決,特此記錄.
First:
If you go into IIS for our site and go into the Home Directory area, click on the Configuration button. You will see a "Cache ISAPI Applications" option. You should ONLY turn this off for testing purposes. When you turn it off, if two people try to hit the same page at the same time they will get:
The requested resource is in use
When this is off, you will also see an event log entry for EVERY time an ISAPI is loaded and unloaded from memory - i.e. constantly.
Check this box in order to cause the items to cache in memory - therefore always being available.
Also:
We ran into this problem and it was due to a corruption of the
vbscript.dll as we noticed it was not running.
The steps we took to fix it were:
1) c:/winnt/system32
2) regsvr32 vbscript.dll
3) regsvr32 jscript.dll
This seemed to fix it although we had to mess around with the IWAM as we
adjusted that when trying to fix the error
Hope this helps
Incidentally this happened due to the roleup patch just released so
beware...