【问题标题】:clr.dll Crash on windows serviceclr.dll Windows 服务崩溃
【发布时间】: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

我已经尝试了以下

  1. 安装了 .NET framework 4.6 并将我的应用程序更改为 4.6,但仍然崩溃。我以为它会使用 4.6 版本的 clr.dll,但它仍然使用 4.0.3019。
  2. 将我的应用程序更改为 x86 但仍然崩溃

关于如何找出问题所在的任何想法

【问题讨论】:

  • 向我们展示您的项目参考资料
  • @DennisLarisch 刚刚添加了参考图片
  • 我认为这些参考并不是你的问题,在 Framework 4.0 中肯定有一个错误,它有一个修补程序,但我找不到它的下载链接
  • @DennisLarisch 当我升级到 4.6 版时,为什么使用的 clr.dll 仍然是 4.0.3019?
  • 这是一个非常非常糟糕的事故,关于程序可能发生的最糟糕的事情。堆栈帧的损坏是根本原因,非常难以诊断。 CLR 承担了责任,但它只是检测到了损坏,并没有造成损坏。该检查是作为针对恶意软件的对策而添加的,堆栈损坏是将数据转换为恶意代码的传统方式。据我们所知,它正在做它应该做的事情,保护您的服务器免受攻击。只有崩溃进程的完整小型转储才能让您找到原因。

标签: c# .net


【解决方案1】:

给定的异常代码表示运行时堆栈缓冲区溢出。不幸的是,没有任何源代码或有关崩溃的更多详细信息,我无法在此处帮助您调试问题。

有关此类问题的一般调试提示,请参阅此答案(如果您无法自己捕获堆栈,请忽略堆栈):https://stackoverflow.com/a/14206133/3966590

有关如何调试问题,请参阅以下 MSDN 答案和相关资源:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/aa84a49e-6bfe-4b89-928a-ea477e73c07e/clr-exception-0xc0000409?forum=clr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2019-03-26
    • 1970-01-01
    相关资源
    最近更新 更多