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

问题描述 投票:33回答:3

我有一个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

在第二个事件查看器日志中,它说:

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个小时。

windows .net-4.0 crash clr
3个回答
1
投票

我有同样的问题。在大约8-10小时的应用寿命中,CLR误差上升。我怀疑我的非托管代码在后台线程中生成异常。但是我无法找到原因。您可以尝试以下方法:

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


1
投票

我有类似的问题,所以这可以帮助未来的用户找到解决方案:

我们使用Apache log4net作为应用程序日志。

更新到DLL版本1.2.15后,对于dotnet Framework 4.5,一旦日志文件达到最大大小(10MB),它就会开始触发这个确切的异常


0
投票

热点大多已经消失了,我遇到了类似的问题,所以我会在这里分享我的答案。

我的解决方案围绕着我将Lambda传递给P / Invoke的事实:

https://stackoverflow.com/a/52360307/4700841

© www.soinside.com 2019 - 2024. All rights reserved.