2014-01-10 7 views
0

ServiceBase 클래스에서 상속하는 클래스가 있습니다. OnStop 방법에, 나는 ServiceHost를 중지ServiceHost가 닫히거나 중지되기 전에 모든 응용 프로그램 작업을 중지하십시오.

protected override void OnStop() 
{ 
    if (this.serviceHost != null) 
    { 
     this.serviceHost.Close(); 
    } 
} 

것은이다, 나는 서비스가 중지됩니다 (MSMQ와 WCF와 ConcurrencyMode.Multiple, InstanceContextMode.Single에서 실행) 큐에서 응용 프로그램 처리를 완료 메시지를 수 있도록합니다. 이것을 할 수있는 방법이 있습니까? 나는 큐가 실행되는 동안 서비스를 다시 시작 유지하기 위해 노력하고, 때로는 나는

+0

위해 노력했다 (이 정지 할 때 어쩌면 일부 메시지가 작업의 중간에 실행 된) 데이터가 손실 좋아 보이네. 나는 호스팅되는 각 서비스에 대해 stop 메소드를 호출 할 것을 기대 했었습니다. 이 서비스에서는 stop을 구현하고 처리를 끝내고 main 루프를 종료하는 내부 속성을 설정합니다. –

답변