【问题标题】:Debug .Net/IIS crash which doesn't crash with debugger attached调试 .Net/IIS 崩溃,它不会在附加调试器时崩溃
【发布时间】:2016-04-25 02:26:03
【问题描述】:

我有一个 .Net Web 应用程序在生产中开始崩溃,我不知道为什么。它非常频繁地崩溃(在高负载下大约每 5 分钟一次)并导致应用程序池崩溃。在事件日志中,我只有以下内容:

错误应用程序名称:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7afa2 故障模块名称:未知,版本:0.0.0.0,时间戳:0x00000000 异常代码:0x00000000 故障偏移:0x000007fe97df95dc

0x00000000 的异常代码并不是特别有用。

通常从这里我会尝试获取故障转储并查看。但是,每当DebugDiag 运行时,应用程序都不会崩溃。这使得追踪变得更加困难。运行 DebugDiag 时内存使用量大幅攀升(每 6 小时 2gb?),但我认为这是正常的。

不确定从这里去哪里。

【问题讨论】:

  • 我遇到了同样的问题,但异常代码不同。我们有 3 台服务器,它们每 2-3 天都会抛出一次异常。如果我将 DebugDiag 附加到其中一台服务器,则停止抛出异常。

标签: asp.net iis crash iis-7.5 debugdiag


【解决方案1】:

异常代码 0x00000000 有点奇怪。不确定是什么原因导致的(可能是在某些 .net 代码中调用 environment.failfast)

关于内存消耗,请确保您使用的是最新的调试诊断工具(版本 2 更新 2),然后在崩溃规则的首选项部分中,您可以调整设置以避免登录异常,这将确保所有未处理的异常未记录)。通常这是消耗大部分内存的原因。还要确保您正在跟踪的进程的进程选项卡下的 LeakTrack 状态为空白。

【讨论】:

  • 这让我非常接近,因此值得投票。我认为这实际上是对 Debugger.Break() 的调用,它错误地没有条件编译包装器并上线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-14
  • 1970-01-01
相关资源
最近更新 更多