C# 正在调用环境。在windows服务中退出

C# 正在调用环境。在windows服务中退出,c#,service,exit,C#,Service,Exit,在Windows服务中调用Environment.Exit是否会使SCM调用该服务的onStop()方法,或者这种行为是不可预测的 我有几个Windows服务都有这个代码。不幸的是,我无法消除这种行为。但是我需要知道是否会调用onStop()来决定是在该方法中还是在调用Environment.Exit的方法中放置一些常用的停止代码。Environment.Exit将关闭由服务包装的进程 因此,调用它将不会调用onStop()方法 您可以自己调用该方法,而不是调用Exit 您可以使用以下代码调用S

在Windows服务中调用Environment.Exit是否会使SCM调用该服务的onStop()方法,或者这种行为是不可预测的


我有几个Windows服务都有这个代码。不幸的是,我无法消除这种行为。但是我需要知道是否会调用onStop()来决定是在该方法中还是在调用Environment.Exit的方法中放置一些常用的停止代码。

Environment.Exit
将关闭由服务包装的进程

因此,调用它将不会调用
onStop()
方法

您可以自己调用该方法,而不是调用
Exit

您可以使用以下代码调用
SCM停止

System.ServiceProcess.ServiceController svc = new System.ServiceProcess.ServiceController("NameOfYourService");
svc.Stop();

可能重复感谢您的快速回答!!所以,这种行为应该总是正确的?这就是你想要的:它的Jon Skeets对@CodeCaster posted.Hi@Ofiris评论的回答,我刚刚遇到这个帖子。只是想知道我们可以使用ServiceController类阻止winservice从win服务本身的任何例程中退出吗?或者我需要单独的应用程序来停止我的服务?请导游。谢谢如果我理解正确,是的,您可以调用
ServiceController
类的
Stop
方法。见: