C# 设置Windows服务';s状态

C# 设置Windows服务';s状态,c#,windows-services,status,C#,Windows Services,Status,我正在尝试创建一个运行我拥有的exe的windows服务。我一直在使用msdn 我以进程运行exe,该进程在OnStart中启动,在OnStop中停止。 我想知道如何更新服务状态,即状态sc query*name* 我试着按照上面指南的状态部分进行操作,但是打电话 serviceStatus.dwCurrentState = ServiceState.SERVICE_STOPPED; SetServiceStatus(this.ServiceHandle, ref serviceStatus);

我正在尝试创建一个运行我拥有的exe的windows服务。我一直在使用msdn

我以
进程运行exe,该进程在
OnStart
中启动,在
OnStop
中停止。 我想知道如何更新服务状态,即状态
sc query*name*

我试着按照上面指南的状态部分进行操作,但是打电话

serviceStatus.dwCurrentState = ServiceState.SERVICE_STOPPED;
SetServiceStatus(this.ServiceHandle, ref serviceStatus);
指南中的这些功能似乎没有任何作用

如果服务运行的exe崩溃或被终止,我希望能够将服务的状态设置为停止

我想到的一个想法是在
OnStart
的线程中运行一个单独的函数,该函数将使用
process.WaitForExit()进行阻塞。在线程停止阻塞之后,我想使用上面的函数将服务状态设置为stopped


有人知道为什么我不能设置服务状态,或者如何将服务状态链接到服务运行的exe吗?谢谢不要设置服务状态。听起来,当exe崩溃或被终止时,您应该停止服务。 要停止服务,请使用ServiceBase.stop()


这会将服务状态更改为已停止。

不要设置服务状态。听起来,当exe崩溃或被终止时,您应该停止服务。 要停止服务,请使用ServiceBase.stop()

这会将服务状态更改为“已停止”