【发布时间】:2018-01-18 12:10:48
【问题描述】:
我的应用程序是在 Windows Server 2008 R2 上运行的 c# windows 服务。它时不时地崩溃并出现以下错误
错误应用程序名称:Fusion_Ingestion_Service.exe,版本:1.1.0.3,时间戳:0x59428da5 错误模块名称:clr.dll,版本:4.0.30319.34209,时间戳:0x5348961e 异常代码:0xc0000409 故障偏移量:0x0000e233 故障进程ID:0x49ac 错误应用程序启动时间:0x01d30c3353dbd043 错误的应用程序路径: 错误模块路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 报告 ID:8bbc1f2b-7844-11e7-b6c9-00155d018b91
我已经尝试了以下
- 安装了 .NET framework 4.6 并将我的应用程序更改为 4.6,但仍然崩溃。我以为它会使用 4.6 版本的 clr.dll,但它仍然使用 4.0.3019。
- 将我的应用程序更改为 x86 但仍然崩溃
关于如何找出问题所在的任何想法
【问题讨论】:
-
向我们展示您的项目参考资料
-
@DennisLarisch 刚刚添加了参考图片
-
我认为这些参考并不是你的问题,在 Framework 4.0 中肯定有一个错误,它有一个修补程序,但我找不到它的下载链接
-
@DennisLarisch 当我升级到 4.6 版时,为什么使用的 clr.dll 仍然是 4.0.3019?
-
这是一个非常非常糟糕的事故,关于程序可能发生的最糟糕的事情。堆栈帧的损坏是根本原因,非常难以诊断。 CLR 承担了责任,但它只是检测到了损坏,并没有造成损坏。该检查是作为针对恶意软件的对策而添加的,堆栈损坏是将数据转换为恶意代码的传统方式。据我们所知,它正在做它应该做的事情,保护您的服务器免受攻击。只有崩溃进程的完整小型转储才能让您找到原因。