MSMQ 대기열을 폴링하고 들어오는 메시지를 처리기로 발송하는 Windows 서비스가 있습니다. 서비스가 종료되기를 원할 때, 큐의 Receive를 일정 시간 후에 타임 아웃하도록하지 않는 한, 그렇게하지 않을 것입니다. Windows 서비스 컨트롤러가 서비스를 종료 할 수 없으면 (& 또한 설치 프로그램을 테스트해야합니다). 실제로는 대기열에 많은 부하가 걸리기 때문에 문제가되지 않습니다. 하지만 내 Dev 환경에서, 나는 이벤트 로그에 수많은 허위 오류 항목이 있습니다. 예를 들어 :이 수신 기능의 합법적 인 사용으로 볼 수 있기 때문에Windows 이벤트 로그의 가짜 MSMQ 시간 초과 오류
while (!Signal)
{
try
{
var msg = Queue.Receive(TimeSpan.FromSeconds(1));
if (Signal)
{
EventLog.WriteEntry("LoggingHub",
"Terminating QueueReader for Path [" +
Queue.Path + "]", EventLogEntryType.Information);
return;
}
// etc etc etc
나에게 오류보고를 해제 할 수있는 방법이 있나요?
수신시 제한 시간을 설정하는 것이 좋습니다. 나는 무한 대기 시간이 항상 오류 상태에 잘 반응하지 않는 문제를 일으키는 것을 발견했습니다. 짧은 시간 제한은 수신이 작동하지 않을 수있는 시간을 제한합니다. –