服务-如何捕获退出代码

本文关键字:退出 代码 何捕获 服务 | 更新日期: 2023-09-27 18:13:03

我想问一下Windows服务。我的服务代码如下所示:

try
{
  //...
}
catch
{
  Environment.ExitCode = 1;
}

安装服务后,我使用调度系统在特定时间运行服务:

net start MyService
//or
sc start MyService

所以我的问题是,如果我有异常,如何获得信息?有什么命令可以得到这个信息吗?现在我通常运行我的应用程序,然后在10分钟后。停止服务。我想做一个中间调度任务,它会告诉我是否在应用程序中发生了错误。我已经尝试了"sc"的所有选项-但它只提供有关服务的信息。

限制:

  • 我无法将错误和异常记录到事件日志或文件
  • 不希望更改我的代码
  • 在调度系统中,我可以使用bat脚本(所以这个脚本是唯一的地方,我可以改变的东西)

服务-如何捕获退出代码

标准方法是将错误和异常记录到事件日志中——要么是为服务创建的特定日志,要么只是将服务作为事件日志的新来源。

您可以使用WMI定期检查事件日志中的错误

在无法记录事件日志的情况下,您可以创建自己的"事件日志"吗?使用中间服务定期轮询的文件或数据库表可能会满足您的目的。