【发布时间】:2011-10-25 10:55:59
【问题描述】:
我们有一个用经典 ASP 编写的非常古老的遗留应用程序。最近在几台服务器上,我们开始遇到致命错误。 IIS 进程崩溃。使用 IIS 调试工具,我们几乎没有错误的堆栈跟踪。有两种常见的错误类型。
我们在应用程序中只使用了几种类型的 COM 组件:ADO、Scripting.Dictionary、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
【问题讨论】:
-
您不会说错误是间歇性的还是恒定的。这会有所帮助。它也是一个遗留应用程序,它可能是为 32 位模式的 Server 2000/3 编写的。你是在 2008R2 还是 64 位上运行?无论如何,术语“HandleErrorMissingFilename”似乎指向文件访问。当 Windows 服务器抛出奇怪的错误时,我总是怀疑文件权限。在测试环境中,您可以尝试将本地网络帐户设置为管理员,看看是否可以解决问题。
-
这个错误一天经常出现6次左右。它以 32 位模式在 Windows Server 2003 R2 上运行。我们已经将 IUSR 添加到 Admins 组。此错误不会在我们的任何测试服务器上重现。
标签: iis vbscript asp-classic crash iis-6