Windows Server 2008下.Net 4.0 Windows应用程序在clr.dll中崩溃

Windows Server 2008下.Net 4.0 Windows应用程序在clr.dll中崩溃,windows,.net-4.0,crash,clr,Windows,.net 4.0,Crash,Clr,我有一个Windows应用程序计划每天运行,并且由于以下登录EventViewer而间歇性失败 Faulting application name: MyApplication.exe, version: 1.0.0.0, time stamp: 0x4d54829a Faulting module name: clr.dll, version: 4.0.30319.1, time stamp: 0x4ba21eeb Exception code: 0xc0000005 Fault offset

我有一个Windows应用程序计划每天运行,并且由于以下登录EventViewer而间歇性失败

Faulting application name: MyApplication.exe, version: 1.0.0.0, time stamp: 0x4d54829a
Faulting module name: clr.dll, version: 4.0.30319.1, time stamp: 0x4ba21eeb
Exception code: 0xc0000005
Fault offset: 0x00000000000029e1
Faulting process id: 0xbb1c
Faulting application start time: 0x01cbd99223d8b4eb
Faulting application path: E:\MyApplication\MyApplication.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Report Id: 7e74ec7e-45a5-11e0-a95d-003048de380d
在第二个EventViewer日志中显示:

The process was terminated due to an internal error in the .NET Runtime at IP 000007FEF97329E1 (000007FEF9730000) with exit code 80131506.
服务器是Win server 2008 R2,应用程序使用.Net 4.0(您也可以在错误日志中看到)

该应用程序密集使用多线程,从远程数据库读取数据并写入本地硬盘


有没有关于这个问题的原因的猜测,以及如何调查的帮助?我不知道它在应用程序的生命周期(大约5-10小时)中失败的地方

我也有同样的问题。在应用寿命约8-10小时时,CLR错误上升。我怀疑我的非托管代码在后台线程中生成异常。但是我真的不知道为什么。但是,您可以尝试以下方法:

  • 如果您使用的是非托管代码,请查看异常处理语句 在执行它的时候
  • 确保您拥有.NET4的最新修复程序。
    ()

如果您已经找到了解决方案,请告诉我。

我遇到了类似的问题,因此这可以帮助未来用户找到解决方案:

我们使用apachelog4net作为应用程序日志


更新到DLL版本1.2.15后,对于dotnet Framwork 4.5,一旦日志文件达到最大大小(10MB),它就会触发此异常。

热修复程序几乎消失,我面临类似问题,因此我将在这里分享我的答案

我的解决方案围绕着这样一个事实:我正在将Lamda传递给p/Invoke:


“致命执行引擎错误”,垃圾收集堆已损坏。祝您好运。请与Microsoft支持部门联系,并向他们提供您的流程的崩溃转储…您是否使用COM组件或其他您应该告诉我们的内容?你有没有搜索过你的邮件中的各种代码,看看是否有其他人已经发布了类似的东西?谢谢你发布这篇文章。实际上,不是为了解决这个问题,而是为了提高应用程序的性能,我们用一个非常快的硬盘替换了硬盘,所有这些奇怪的事情都消失了,应用程序现在运行得如此之快,没有任何问题。以前,应用程序会使用太多的资源(主要是内存),因为它一次只允许一个线程写入磁盘,所有数据都会积累在内存中;这可能是这个问题的原因。Windows操作系统在正确处理此类棘手问题方面并不出名,是吗?;)