可捕获错误 0xC0000005
我们有一个用经典 ASP 编写的非常古老的遗留应用程序。最近,我们在几台服务器上开始出现致命错误。 IIS 进程崩溃。我们使用 IIS 调试工具得到了一些错误的堆栈跟踪。有 2 种常见的错误类型。
我们在应用程序中仅使用几种类型的 COM 组件:ADO、Scripting.Dictionary、Scripting.FileSystem 和 Scripting.FileSystem。 MSXML6。
IIS 日志显示错误描述为访问冲突异常 (0xC0000005)。
您对错误的原因有什么想法或将来调试的任何方法吗?任何获得有关此错误的更多信息的方法将不胜感激。
谢谢。
堆栈跟踪:
1.
1996e18
oleaut32!VariantCopy+173
oleaut32!SafeArrayCopyData+14e
oleaut32!SafeArrayCopy+e3
oleaut32!VariantCopy+5b
oleaut32!VariantCopyInd+1a1
asp!CComponentObject::GetVariant+27
asp!CApplnVariants::get_Item+da
oleaut32!DispCallFunc+16a
oleaut32!CTypeInfo2::Invoke+234
asp!CDispatchImpl<IVariantDictionary>::Invoke+55
oleaut32!CTypeInfo2::Invoke+58a
asp!CDispatchImpl<IApplicationObject>::Invoke+55
vbscript!IDispatchInvoke2+b2
vbscript!IDispatchInvoke+59
vbscript!InvokeDispatch+13a
vbscript!InvokeByName+42
vbscript!CScriptRuntime::RunNoEH+22b2
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ExecuteChildRequest+12c
asp!CErrInfo::LogCustomErrortoBrowser+28a
asp!CErrInfo::LogErrortoBrowserWrapper+8b
asp!CErrInfo::LogError+77
asp!HandleError+100
asp!HandleErrorMissingFilename+ac
asp!CActiveScriptEngine::Call+a7
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvcs!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
comsvcs!CSTAActivityWork::DoWork+12d
comsvcs!CSTAThread::DoWork+18
comsvcs!CSTAThread::ProcessQueueWork+37
comsvcs!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34
2.
scrrun!FreeList+f
scrrun!VBADictionary::~VBADictionary+28
scrrun!VBADictionary::`scalar deleting destructor'+d
scrrun!VBADictionary::Release+17
oleaut32!VariantClear+b1
oleaut32!ReleaseResources+98
oleaut32!_SafeArrayDestroyData+4d
oleaut32!_SafeArrayDestroy+b3
oleaut32!SafeArrayDestroy+f
oleaut32!VariantClear+75
vbscript!VAR::Clear+a6
vbscript!CScriptRuntime::Cleanup+63
vbscript!CScriptRuntime::Run+8d
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvcs!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
comsvcs!CSTAActivityWork::DoWork+12d
comsvcs!CSTAThread::DoWork+18
comsvcs!CSTAThread::ProcessQueueWork+37
comsvcs!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34
We have one very old legacy application written on Classic ASP. Recently on a couple of servers we've started to get fatal errors. IIS process crashes. We've got few error's stack traces with IIS Debug Tool. There is 2 common types of errors.
We are using only few types of COM components in our application: ADO, Scripting.Dictionary, Scripting.FileSystem & MSXML6.
IIS logs says that error description is access violation exception (0xC0000005).
Do you have any ideas about the reason of errors or any ways for future debugging. Any ways to get more info about this errors will be very appreciated.
Thanks.
Stack traces:
1.
1996e18
oleaut32!VariantCopy+173
oleaut32!SafeArrayCopyData+14e
oleaut32!SafeArrayCopy+e3
oleaut32!VariantCopy+5b
oleaut32!VariantCopyInd+1a1
asp!CComponentObject::GetVariant+27
asp!CApplnVariants::get_Item+da
oleaut32!DispCallFunc+16a
oleaut32!CTypeInfo2::Invoke+234
asp!CDispatchImpl<IVariantDictionary>::Invoke+55
oleaut32!CTypeInfo2::Invoke+58a
asp!CDispatchImpl<IApplicationObject>::Invoke+55
vbscript!IDispatchInvoke2+b2
vbscript!IDispatchInvoke+59
vbscript!InvokeDispatch+13a
vbscript!InvokeByName+42
vbscript!CScriptRuntime::RunNoEH+22b2
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ExecuteChildRequest+12c
asp!CErrInfo::LogCustomErrortoBrowser+28a
asp!CErrInfo::LogErrortoBrowserWrapper+8b
asp!CErrInfo::LogError+77
asp!HandleError+100
asp!HandleErrorMissingFilename+ac
asp!CActiveScriptEngine::Call+a7
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvcs!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
comsvcs!CSTAActivityWork::DoWork+12d
comsvcs!CSTAThread::DoWork+18
comsvcs!CSTAThread::ProcessQueueWork+37
comsvcs!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34
2.
scrrun!FreeList+f
scrrun!VBADictionary::~VBADictionary+28
scrrun!VBADictionary::`scalar deleting destructor'+d
scrrun!VBADictionary::Release+17
oleaut32!VariantClear+b1
oleaut32!ReleaseResources+98
oleaut32!_SafeArrayDestroyData+4d
oleaut32!_SafeArrayDestroy+b3
oleaut32!SafeArrayDestroy+f
oleaut32!VariantClear+75
vbscript!VAR::Clear+a6
vbscript!CScriptRuntime::Cleanup+63
vbscript!CScriptRuntime::Run+8d
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CScriptRuntime::RunNoEH+1e02
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvcs!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
comsvcs!CSTAActivityWork::DoWork+12d
comsvcs!CSTAThread::DoWork+18
comsvcs!CSTAThread::ProcessQueueWork+37
comsvcs!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
过去几周我们遇到了非常相似的情况。追查这个问题非常复杂。问题出在 VB6 代码的 OnError 处理程序中。有 2 种情况需要重现:
IIS
在大约 100 个此类错误之后,IIS 将无法正常工作。从这一刻起,这将是绝对不可预测的行为。
We had very similar situation last couple weeks. It was very complicated to track down this issue. The problem is in OnError handler of VB6 code. There are 2 cases to reproduce:
IIS
After ~100 such errors IIS will fail to work normally. It will be absolutely unpredictable behavior after this moment.