IIS访问ASP页面时报错The requested resource is in use.的解决办法
作者:
IIS访问ASP页面时报错The requested resource is in use.的解决办法
重启服务器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...
在网上寻找解决方案,说是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...