2016-08-17 2 views
0

시간이 지나면 NServiceBus Windows 서비스를 중지 할 수없는 문제가 있습니다. 시도 할 경우 다음 예외가 발생합니다.NServiceBus Windows 서비스 : 서비스를 중지 할 수 없습니다.

오류 1061 : 서비스에서 현재 제어 메시지를받을 수 없습니다. 우리가 BusConfiguration를 구성하는 사실 IConfigureThisEndpoint 인터페이스에 필요하기 때문에, https://github.com/Particular/NServiceBus/issues/1898

는 슬프게도,이 도움이되지 않습니다

불행하게도, 난 정말이 문제가 아니라이 Github에서-문제에 대해 아무것도 찾을 수 없습니다 , 그것은 또한 그렇게 오랫동안 달리지 않고있다. 우리는 또한 문제가없는 다른 NServiceBus-Endpoints와 거의 동일한 템플릿을 사용합니다.

흥미롭게도이 엔드 포인트는 꽤 오랫동안 작동했으며 특정 서버에 대해서만 문제가있는 것으로 보입니다.

Microsoft 또는 NServiceBus에서 예외에 대해 더 자세히 알아볼 수 있습니까?

+0

다른 서버에서 재생산 할 수 있습니까? 어떤 버전의 NServiceBus를 실행하고 있습니까? 호스트를 사용하고 있습니까? –

+0

안녕하세요, 다른 서버에서 재현 할 수없는 순간에 RavenDB 및 MSMQ와 함께 5.2.8 버전의 NServiceBus를 사용합니다.그리고 예, 제가 아는 한 Windows 서비스는 호스트 셸입니다. 또는 "호스트 사용"으로 무엇을 의미하는지 자세히 설명 할 수 있습니까? –

+0

그냥 내 말은 nservicebus.host.exe –

답변

1

정상 종료

이 오류는 여러 가지 이유로 발생할 수 있습니다. NServiceBus는 정상적인 종료 만 시도합니다.

NServiceBus는 현재 처리중인 메시지를 중단하지 않지만 새 메시지 처리를 중지합니다.

로그 파일

로그 파일은 그래서 당신이 확인할 수있는 최초의 일이 종료가 트리거되는 것을 표시해야합니다.

나는 종료 시퀀스를 진단하는 데 도움이 DEBUG에 로그 레벨을 설정 권합니다 또한이 추가 :

var appDomainLogger = LogManager.GetLogger("AppDomain"); 
var appDomain = AppDomain.CurrentDomain 
appDomain.FirstChanceException += (o, ea) => { 
    appDomainLogger.Debug("FirstChanceException", ea.Exception); 
}; 
appDomain.UnhandledException += (o, ea) => { 
    appDomainLogger.Debug("UnhandledException", ea.ExceptionObject as Exception); 
}; 

그것은 예외가되지 않도록 종료 발생이 추가 진단을 추가하는 수 있습니다. 예를 들어 메시지가 처리되는 경우 해당 데이터베이스에 대한 잠금을 기다리고

긴 실행 메시지

은이 메시지는 Windows 서비스 인터페이스를 허용 한 후 더 많은 시간이 걸릴 수 있습니다 발표한다. 변환 미디어 파일과 같은

다른 작업

결국, Windows 서비스해야 종료 모든 리소스를 해제하고, 그들이 종료를 방지하는 버그를 포함하지 않는 메시지 처리를 완료합니다.

자원 처분

또한 종료 중에도 컨테이너가 배치됩니다. 컨테이너에 많은 정리/분해가 필요한 리소스가있을 수 있습니다. 예를 들어, 메모리 내 캐시를 디스크 또는 원격 저장소로 플러시하여 다음에 서비스를 시작할 때 더 빨리 시작하고 정상적으로 시작할 수있는 리소스.

+0

통찰력에 대해 많은 감사드립니다, 나는 그것을 체크 아웃합니다. Sagas를 사용하는 호스트는이 호스트뿐입니다. –

관련 문제