2011-04-29 3 views
1

내 웹 응용 프로그램이 메시지를 대기열로 보내고 오류도 예외도없고 불만도 없습니다. Log4Net 로그에 다음과 같이 표시됩니다.Nservicebus 메시지 디버깅 문제가 발생 함 - 메시지가 사라짐

Sending message Test.Nservicebus.Messages.v1.LoggMessage, Test.NServiceBus, 
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null with ID 
456f0b8d-341d-4f92-b3ac-12872c710a6a\4121 to destination V1_LoggQueue.............. 

괜찮아요!

하지만 관리 콘솔을 보면 대기열에 메시지가 없습니다. 큐 처리기가 없습니다.

로컬 개인 큐에 게시하고 있습니다.

"나가는 대기열"이 정의되어야합니까? 또는 원격 대기열에 게시 할 때만 해당합니까? 내 대기열 목록이 비어 있습니다.

어떻게 디버깅 할 수 있습니까? 어떤 아이디어를 시작할 것인가?

Bus = NServiceBus.Configure 
.WithWeb()     
.Log4Net()     
.DefaultBuilder()    
.XmlSerializer()    
.MsmqTransport()    
    .IsTransactional(false) 
    .PurgeOnStartup(false) 
.UnicastBus()     
    .ImpersonateSender(false) 
.CreateBus()     
.Start();      

그럼 난 그냥 메시지를 보낼 Bus.Send(MyMessage);를 사용하여 같은

내 nServicebus 초기화입니다.

아이디어가 있으십니까?

+0

원격 대기열이 트랜잭션으로 구성되어 있습니까? –

답변

0

웹 엔드 포인트와 서버 엔드 포인트가 다른 시스템에 있으면 웹 시스템에 아웃 바운드 대기열이 있어야합니다. 거기에 메시지가 표시 될 수 있습니다. 이것은 어떤 이유로 MSMQ가 다른 컴퓨터로의 전송을 완료 할 수 없음을 의미합니다. 이것은 일반적으로 MSMQ, MSDTC와 관련된 컴퓨터에서 구성 문제가 있거나 방화벽이이를 차단할 수 있음을 의미합니다.

아웃 바운드 대기열에 아무 것도 표시되지 않기 때문에 말하기가 모두 로컬 인 경우 조금 어렵습니다. 목표 대기열에서 저널링을 켜서 메시지가 실제로 거기에 있는지 확인합니다. 그렇다면 메시지가 처리되고 있습니다. 그렇지 않은 경우 구성 문제 여야합니다.

관련 문제