【发布时间】:2018-10-18 09:18:39
【问题描述】:
我们有一个需要杀死自己的服务(原因:我们使用第三方库,它在关闭场景中具有不可预测的行为......)。有时,Windows 服务控制管理器不会重新启动服务。 SCM 中的服务恢复操作设置为“重新启动服务”(针对第一次、第二次和后续故障)。
这就是我们终止服务的方式:
public static void TerminateProcess(string message)
{
Log.ErrorFormat("Terminating Process becauses of: {0}", message);
Process.GetCurrentProcess().Kill();
}
有人知道Process.GetCurrentProcess().Kill(); 是否是杀死服务的好方法吗?
我还阅读了一些帖子,建议使用以下组合:
class MyService : ServiceBase
{
void KillMe()
{
this.ExitCode = 1; // ServiceBase.ExitCode
System.Environment.Exit(1);
}
}
我也发现了这个stackoverflow thread,但它没有说明任何关于服务恢复的内容。
杀死服务的首选/安全方法是什么,以便 SCM 重新启动它?
谢谢
【问题讨论】: