iis - 可捕获错误 0xC0000005

标签 iis vbscript asp-classic crash iis-6

我们有一个用 Classic ASP 编写的非常古老的遗留应用程序。最近在几台服务器上,我们开始出现 fatal error 。 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

最佳答案

过去几周我们的情况非常相似。追查这个问题非常复杂。问题出在 VB6 代码的 OnError 处理程序中。有2种情况可以重现:

  • 您没有 OnError 处理程序,错误发生并直接转到
    IIS
  • OnError 处理程序中发生错误并直接进入 IIS。

  • 在大约 100 个此类错误之后,IIS 将无法正常工作。在这一刻之后,这将是绝对不可预测的行为。

    关于iis - 可捕获错误 0xC0000005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888196/

    相关文章:

    apache - 如何在 Windows 上的 Apache 服务器上运行我的 Asp.net Core 应用程序?

    ASP.Net Session_Start 事件未触发

    scripting - 监控驱动器。使用VB脚本

    windows - VBScript 发送键 CTRL+LWIN+TAB?

    windows - 有没有一种方法可以在批处理脚本中存储和检索文件中的密码?

    sql-server - 通过 SQL 查询获取 SQL Server 架构?

    asp-classic - 如何统计ASP经典中的记录?

    iis - 具有相同 DLL 的多个网站的 Azure 网站内存使用情况

    html - 经典的 asp 密码验证 sql

    asp.net - Lightswitch 2013 应用程序将在服务器上运行,但不能从 Web 运行