mscorwks.dll中异常代码c0000005的原因和解决方案是什么?

Eri*_*ick 6 c# exception testcomplete mscorwks.dll windows-server-2008-r2

当应用程序在使用测试完成启动的Windows Server 2008 R2上运行时,将从mscorwks.dll引发异常代码C0000005.其他平台(Windows XP,Server 2003 R2,Windows 7 32位和64位)不会出现此异常.

来自单个执行的事件日志具有以下许多事件,其中事件ID 1023由.NET运行时引发:

.NET运行时版本2.0.50727.4952 - 致命执行引擎错误(7383851A)(80131506)

应用程序本身使用Visual Studio从WSDL文件生成的SOAP接口,具有嵌入式互操作的COM对象,并以.NET 4 为目标.

运行sfc/scannow,发现受影响系统上的系统文件没有问题.

可以通过哪些故障排除来确定解决方案?

Han*_*ant 9

致命引擎执行错误和访问冲突都是同一问题的症状.当.NET垃圾收集器检测到垃圾收集堆的内部结构被破坏时,引发FEEE.访问冲突是硬件异常,当处理器被要求访问具有无效地址的内存时由处理器引发.AV的常见原因是堆损坏.

这种不幸事故通常是由非托管代码引起的.非托管代码也常常会出现潜伏的内存管理错误,这些错误很长时间都会被忽视.这种bug可以造成的破坏往往是随机的.只是在具有不同内存分配模式的另一个操作系统上运行它就足以触发炸弹.

你有一个很好的候选人来解决问题的根源.您需要与COM服务器供应商或作者合作来追踪该错误.


Eri*_*ick 3

此错误是由 TestComplete 7 与混合托管/非托管应用程序中的堆交互方式中的缺陷引起的。不要使用TestedApp.Run以下代码块的方法,该代码块根据您选择的脚本语言进行了修改,以VBScript形式呈现:

Dim oScript, command
Set oScript = CreateObject("WScript.Shell")

command = "%comspec% /c " & PATH_TO_EXE & " " & Args
oScript.Run command, 10, True 
Run Code Online (Sandbox Code Playgroud)

相关的MSDN文章是Run Method (Windows Script Host)