当“全部中断”没有响应时,如何调试无响应的.Net服务?

时间:2014-03-24 14:45:04

标签: c# wcf debugging memory-leaks crash

我们有一个消耗大量内存的 WCF服务应用程序(请参阅我今天的另一张机票:Server is leaking memory; but process looks fine)。

在突然间大量使用Windows服务应用程序后,整个服务崩溃了。在这一刻:

  • 日志(WCF-Trace / Server DB Log)显示活动,但没有潜在客户。
  • 内存很高,但没有内存不足异常Server is leaking memory; but process looks fine
  • 打开的连接数;就在崩溃之前':10 - 20 内存转储显示8个线程,没有有趣的堆栈跟踪。这些只是小堆栈,没有任何用户代码(仅在 Microsoft-symbols 中调用)

可以做:

  • 连接远程调试器;
  • 连接到WCF列出的端口;

无法做到:

  • 远程调试器;打破所有不回应
  • 附加 SciTechMemoryProfiler (例外:0x80007002
  • 对WCF的任何调用的响应;

内存仍在使用中,但服务器完全没有响应。

1 个答案:

答案 0 :(得分:1)

感谢您阅读此票。

我们找到了解决方案。我们用 WinDebug 分析了转储文件,并在转储中找到了一个函数。我们不知道在.Net 中 Windows服务是运气还是预期的行为,但是从那里我们就能够复制这个问题。

感谢大家的阅读,希望您可以通过这个解决方案取得进步。