重啟伺服器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...