从Windows服务中调用Environment.Exit是否使SCM调用服务的onStop()方法,或者这种行为是不可预测的?
我有几个拥有此代码的Windows服务。不幸的是,我无法删除此行为。但我需要知道是否会调用onStop()来决定是在该方法中还是在调用Environment.Exit的方法中放置一些常用的停止代码。
答案 0 :(得分:12)
Enviroment.Exit
将关闭服务包装的进程。
因此,调用它时,不会调用onStop()
方法。
您可以自己调用该方法,而不是调用Exit
您可以使用以下代码调用SCM stop
System.ServiceProcess.ServiceController svc = new System.ServiceProcess.ServiceController("NameOfYourService");
svc.Stop();