내 ID를 로그에 기록 할 수 있도록 내 처리기 안에 msmq 메시지의 ID를 가져와야합니다.NServiceBus를 사용하여 MSMQ 메시지의 Id 속성 얻기
메시지가 오류 대기열로 보내지면 실패한 메시지를 알리는 전자 메일이 전송됩니다. 메시지의 원인이 된 오류가 해결되면 'ReturnToSourceQueue'NServiceBus 도구를 사용하여 해당 메시지를 다시 시도해야합니다. 이 ID를 로깅하지 않으면 메시지 대기열을 볼 때 어떤 메시지인지 추적하기가 어려울 수 있습니다.
내가 본 모든 곳에서 Bus.CurrentMessageContext.Id는 ComputerManagement -> 서비스 및 응용 프로그램 -> 메시지 큐 -> 큐에서 큐를 볼 때 메시지 ID 열에 동일한 ID를 제공함을 제안합니다. [일부 큐 ] -> 대기열 메시지. 그러나 이러한 ID는 같지 않습니다.
무엇이 누락 되었습니까?
답장을 보내 주셔서 감사합니다. 그러나 메시지가 오류 대기열로 이동되지 않은 경우에도 - 처리 대기열에있는 ID를 사용 중지하면 이벤트 처리기에서 일시 중지하고 bus.currentmessagecontext.Id를 볼 때 Id가 동일하지 않습니다. . 또한 NSB가 로그 할 때 처리되는 각 메시지에 대해 다른 로그를 작성합니까? –
NServiceBus와 함께 사용하기 위해 이전 버전의 데몬을 업데이트하려고합니다. 기존의 로깅을 플랫 파일로 처리하는 것이 꽤 있습니다. (그대로 유지하고 메시지 ID 같은 것을 로그에 추가하려고합니다.) 우리는 ' 데이터베이스가 다운 된 경우에도 메시지를 전송할 수 없기 때문에 스패밍에 대해 그렇게 걱정하지 않아도됩니다. 나 자신을 직접 구축하지는 않겠지 만 곧 생산에 착수해야합니다. ( –
방향 앞으로 우리는 NServiceBus와 함께 갈 것이므로 MSMQ 메시지 ID와 점점 더 거리를 두어야 할 필요가 있으므로 코드를 작성하는 것을 피하십시오. 이제 ServiceInsight 도구는 NServiceBus 메시지 ID 대신에 NServiceBus 메시지 ID를 표시합니다. 전송 레벨 ID - 어쩌면 시작해야합니다. –