2010-03-17 2 views
0

C#으로 작성된 Windows 서비스에서 onStop 이벤트를 처리하는 방법.onStop 이벤트 처리

+0

너무 막연합니다. OnStop 메서드를 재정의하는 방법 또는이 메서드에 무엇을 넣을 지 또는이를 사용하기 위해 무엇을 알고 싶습니까? – RichardOD

+0

이것이 운영체제와 관련이 있다고 가정합니다. Win2k3에 내 서비스를 배치했는데 정상적으로 작동했습니다. 그것은 완벽하게 시작하고 Services.msc에서 중단했을 때 중단되었습니다. 이전에 WinXP에 서비스를 배포하려고했습니다. 다른 사람이 그러한 문제에 직면했을 경우 알려 주시기 바랍니다. – Snowill

답변

0

은 단지를 OnStop 방법은 오버라이드 (override) 한 :

protected override void OnStop() 
{ 
    // Your code goes here. 
} 
+0

답변의 코드는 VS에 의해 자동 생성됩니다. 나는 OP가 무엇을 그/그녀가 그것에 넣어야 하는지를 알고 싶었다고 생각한다. – Arrow

+0

http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onstop.aspx – Arrow

1

은 무엇 당신이 원하는 무엇입니까? 방금 서비스를 중지해도 문제가 없으면 아무 것도하지 마십시오. 실제로 서비스를 중지 시키려면이를 처리 할 필요가 없습니다. 서비스가 Windows에서 중지 알림을 받으면 물건을 처리 할 수 ​​있습니다. ServiceBase에서 파생 클래스에서

, 당신은 OnStop 메서드를 재정의해야합니다

protected override void OnStop() 
{} 

그런 다음 서비스가 거기에 중지 될 때 실행해야 당신의 논리를 넣을 수 있습니다.

Windows는 서비스가 중지되는 데 걸리는 시간 (약 30 초 정도)을 허용합니다.이 후에는 서비스를 중지 할 수 없다고보고합니다. 즉, OnStop 메소드에서 너무 길어서는 안됩니다. 일반적으로 서비스가 중지 이벤트를 수신했음을 기록하는 것이 유용합니다.

+0

이제는 onStop 메서드에서 아무 것도하지 않지만 서비스에서 서비스를 중지하려고 할 때입니다. msc 그것은 잘 멈춘다. 그러나 그 다음 즉시 아무것도 나에게 밖에서 다시 시작된다. services.msc에서 수동으로 중지 할 때 서비스를 중지해야합니까? – Snowill

+0

나는 try..catch 블록을 작성하여 예외를 포착하려고 시도했지만 헛되지 않았습니다. 새로운 서비스를 만들었습니다. 코드는 전혀없고, 샘플 예제가 있지만 작동하지 않습니다. – Snowill

+0

@ Snowill- 일부 샘플 코드를 게시하십시오. – RichardOD