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

时间:2016-03-09 04:42:14

标签: c# wpf windows-error-reporting

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

1 个答案:

答案 0 :(得分:3)

不是崩溃,你只是看到.NET框架的ServiceBase类正在完成它的工作。在一些特定情况下,它将捕获异常并在应用程序事件日志中创建一个条目。在其代码中执行此操作会导致运行OnStart(),OnStop(),etcetera方法。

看起来该服务的OnSessionChange()方法失败了,只是一个标准的文件锁定错误。服务代码很可能有点笨拙,它需要在Main()方法中打开该文件,这样其他任何人都无法搞砸它。可能没有经过良好的测试,OnSessionChange()并不常用。当然没有什么理由尝试记录任何东西,但谁知道。

这不应该影响服务过程,如果OnSessionChange通知失败,服务控制管理器不会给出很多响应。它无能为力。所以你看到的主要是因为你开始寻找,服务确实倾向于行为不端而没有人注意到。它们确实不是很明显。确保您的代码没有锁定Log.txt文件。如果您这样做,则必须使用FileShare.ReadWrite来阻止服务崩溃。