服务崩溃的异常代码是什么?

What will be the exception code for a service crash?

我创建了一个用于跟踪用户会话的 WPF 服务,在跟踪用户会话的同时我还想跟踪服务崩溃事件。为此,我一直在检查 windows 事件日志并确定错误。但是我很困惑,它在那里显示了一个错误,表明无法处理会话更改! 那是服务崩溃吗?服务崩溃是否有任何特定的异常代码/ 任何人都可以帮助建议相关文章/要点以识别系统崩溃吗?

不是崩溃,您只是看到 .NET 框架的 ServiceBase class 正在执行它的工作。在一些特定情况下,它会捕获异常并在应用程序事件日志中创建一个条目。 In 在其代码中这样做,导致 OnStart()、OnStop() 等方法变为 运行.

看起来服务的 OnSessionChange() 方法失败了,只是一个沼泽标准文件锁定错误。服务代码很可能有点笨拙,它需要在其 Main() 方法中打开该文件,这样其他人就无法弄乱它。可能没有经过很好的测试,OnSessionChange() 不会经常触发。当然没有理由尝试记录任何内容,但谁知道呢。

这应该不会影响服务进程,如果 OnSessionChange 通知失败,服务控制管理器不会给出太多提示。它对此无能为力。所以你看到这主要是因为你开始寻找,服务确实会在没有人注意到的情况下行为不端。他们这样做并不是很明显。请确保不是您的代码锁定了 Log.txt 文件。如果这样做,则必须使用 FileShare.ReadWrite 来防止服务崩溃。