Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows服务可以自行停止吗?_C#_Windows_Windows Services - Fatal编程技术网

C# Windows服务可以自行停止吗?

C# Windows服务可以自行停止吗?,c#,windows,windows-services,C#,Windows,Windows Services,我有一个Windows服务,它的启动类型是自动的,但是我想在服务启动时做一些检查,如果这些检查失败,让服务自动停止 我该怎么做?我的服务是用C#写的。你可以使用和呼叫。停止 ServiceController sc= new ServiceController(service); sc.Stop(); 您可以在ServiceBase类上调用Stop方法。有关更多详细信息,请参阅。这不是一个无效的场景,因为堆栈将从桌面上展开,返回到仍在运行的服务上如果服务向SCM报告在所有线程退出之前服务已停止

我有一个Windows服务,它的启动类型是自动的,但是我想在服务启动时做一些检查,如果这些检查失败,让服务自动停止

我该怎么做?我的服务是用C#写的。

你可以使用和呼叫。停止

ServiceController sc= new ServiceController(service);
sc.Stop();

您可以在
ServiceBase
类上调用
Stop
方法。有关更多详细信息,请参阅。

这不是一个无效的场景,因为堆栈将从桌面上展开,返回到仍在运行的服务上<代码>如果服务向SCM报告在所有线程退出之前服务已停止,则SCM可能会将此解释为矛盾。这可能会导致服务无法停止或重新启动。它确实有效,@andrew.rockwell。调用
OnStop
并不意味着服务将在所有线程退出之前报告它已停止。你看过我答案中的msdn链接了吗?