【发布时间】:2011-10-30 20:35:39
【问题描述】:
我想询问有关 Windows 服务的问题。 我的服务代码如下所示:
try
{
//...
}
catch
{
Environment.ExitCode = 1;
}
安装服务后,我使用调度系统在特定时间运行服务:
net start MyService
//or
sc start MyService
所以我的问题是,如果我有异常,如何获取信息? 是否有任何命令可以获取此信息?现在我通常运行我的应用程序,然后在 10 分钟后运行。停止服务。我想做中间调度任务,它会告诉我是否在应用程序中发生了错误。我已经尝试了“sc”的所有选项 - 但它只提供有关服务的信息。
约束:
- 我无法将错误和异常记录到事件日志或文件中
- 不想更改我的代码
- 在调度系统中,我可以使用 bat 脚本(所以这个 scipt 是我唯一可以更改的地方)
【问题讨论】:
-
我认为这里要考虑的问题是为什么要将程序作为 Windows 服务而不是独立的可执行文件来执行。我认为没有任何方法可以获取作为服务运行的进程的退出代码,因为您的服务正在由服务控制管理器运行。如果您只是按需运行进程,由调度程序驱动,请考虑仅使用独立的可执行文件。
标签: c# service scheduling