【发布时间】:2011-04-14 00:35:40
【问题描述】:
我继承了一个大型而复杂的 C# Windows 服务项目,该项目时不时地崩溃。日志系统没有记录任何我最初认为奇怪的消息,但我现在明白如果出现堆栈溢出或内存不足异常,日志记录可能会失败。
因此,我的任务之一是尝试找到任何可能破坏堆栈的递归函数。 VS2010 或其他代码分析软件中是否有任何工具可以帮助检测递归代码?
作为第二个问题:还有什么可能导致 Windows 服务中的日志记录失败?
(项目使用 VS2010,但仍以 .net 3.5 和 C# 3.0 为目标)
【问题讨论】:
-
+1 用于在问题标题中使用堆栈溢出。
-
日志机制本身的故障可能会导致 SO。如果记录失败,则抛出异常,将尝试记录,...
-
您使用的是哪个日志框架?例如,log4net 是尽力而为 - 如果它无法记录,它不会使您的应用程序崩溃。
-
@nonnb:不,不可能以这种方式生成堆栈溢出异常。
标签: c# .net windows-services recursion