服务 - 如何捕获退出代码

时间:2011-10-30 20:35:40

标签: c# service scheduling

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

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

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

net start MyService
//or
sc start MyService

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

约束上:

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

2 个答案:

答案 0 :(得分:1)

标准方法是将错误和异常记录到event log中 - 您为服务创建的特定记录,或者只是将该服务用作事件日志的新来源。

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

答案 1 :(得分:0)

如果无法登录事件日志,您可以创建自己的“事件日志”吗?使用中间服务定期轮询的文件或数据库表可能会达到您的目的。