2013-10-10 37 views
8

Bir Windows hizmetinden Media.Exit çağrısı, SCM'yi hizmetin onStop() yöntemini çağırıyor mu, yoksa bu davranış önceden kestirilemiyor mu?Çevreyi Çağırmak. Bir windows hizmetinde bekle

Bu kodu içeren birkaç Windows hizmetim var. Maalesef bu davranışı kaldıramıyorum. Ancak, bu yönteme veya Environment.Exit çağıran yönteme göre bazı ortak durdurma kodlarının konup konmayacağına karar vermek için onStop() yönteminin mi çağrılacağını bilmem gerekiyor. Hizmet tarafından sarılmış işlemi kapatacaktır.

+0

olası yinelenen çağırmak için Exit

Aşağıdaki kodu kullanabilirsiniz için çağıran kendiniz yöntemi çağırabilirsiniz? ] (http://stackoverflow.com/questions/554276/can-a-service-written-in-net-self-terminate) – CodeCaster

cevap

11

Enviroment.Exit. Bu nedenle, onStop() yöntemini çağırmayacaktır.

yerine .NET ile yazılmış bir hizmet kendiliğinden sona Can [ait SCM stop

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

Hızlı cevap için teşekkürler! Yani bu davranış her zaman doğru olarak bekleniyor mu? – Cygnus

+0

Bu şeye bakıyorsunuz: http://stackoverflow.com/a/554292/1361084 Jon Skeets, @CodeCaster'ın yorumunu yanıtladı. – Ofiris

+0

Merhaba @Ofiris Sadece bu konuya rastladım. winservice'i ServiceController sınıfını kullanarak herhangi bir rutin kazanım hizmetinden kendimizi durdurabilir miyiz? veya hizmetimi durdurabilecek ayrı uygulamalara mı ihtiyacım var? lütfen yol göster. teşekkürler – Thomas