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

我有一个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:MyApplicationMyApplication.exe
Faulting module path: C:WindowsMicrosoft.NETFramework64v4.0.30319clr.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的最新修补程序。 (https://connect.microsoft.com/VisualStudio/Downloads) 如果您已经找到解决方案,请告诉我。     
我有类似的问题,所以这可以帮助未来的用户找到解决方案: 我们使用Apache log4net作为应用程序日志。 更新到DLL版本1.2.15后,对于dotnet Framwork 4.5,一旦日志文件达到最大大小(10MB),它就会开始触发这个确切的异常     
热点大多已经消失了,我遇到了类似的问题,所以我会在这里分享我的答案。 我的解决方案围绕着我将Lamda传递给P / Invoke的事实: https://stackoverflow.com/a/52360307/4700841     

要回复问题请先登录注册