2014-04-01 1 views
1

메시지를 게시하는 Web API 프로젝트와 해당 메시지를 구독하는 호스트가 있습니다. 이것은 개발 환경에서 잘 작동합니다 (2 대의 컴퓨터에서 테스트 됨).nServiceBus 메시지를 게시하지 않음을 게시합니다.

테스트 서버에 배포했을 때 작동하지 않았습니다. Publish 메서드 호출은 예외를 throw하지 않지만 모든 것이 정상이지만 메시지가 메시지 큐에 추가되지 않습니다. 우리는 큐의 권한을 검사했습니다. 모든 것이 개발 환경에있는 것처럼 테스트 서버에서 설정되었습니다.

Bus = Configure.With() 
       .Log4Net() 
       .DefaultBuilder() 
       .UseTransport<Msmq>() 
       .UnicastBus() 
       .RavenSubscriptionStorage() 
       .CreateBus() 
       .Start((() => Configure.Instance.ForInstallationOn<Windows>().Install())); 

편집 : 난 그냥 구독자가 RavenDB에 등록되어 있지 않은 것을보고

이 어떻게 웹 API의 우리가 설정 버스입니다. 게시자 테이블에는 테스트 서버에 문서가 들어 있지 않지만 dev 컴퓨터에는 구독자에 대한 참조가 들어 있습니다. 왜 이런 일이 발생했는지, 어떻게 수정해야하는지에 대한 아이디어가 있습니까?

+0

로그에있는 내용은 무엇입니까? 실행중인 버전은 무엇입니까? 은 .config 파일에서 구독자 매핑이 정상입니까? TEST/DEV에서 실행중인 RavenDB의 버전은 무엇입니까? –

답변

0

Dante, 구독자는 구독과 함께 제어 메시지를 보내야합니다. dev 시스템의 로그에서도이 내용을 볼 수 있습니다. 구독자를 저장하는 것은 게시자입니다.

수신 사실을 알 수 있습니까? 일반적으로 '구독하기'와 비슷합니다.

게시자가 수신 한 경우 Raven에 연결하지 못하거나 Raven을 찾지 못하면 예외가 기록됩니다.

구독자 설정을 다시 확인하여 구독하려는 유형이 적절한 게시자에 매핑되고 메시지가 통과하는지 확인하십시오. 구독자가있는 컴퓨터의 발신 대기열에 걸릴 수 있습니다 ...

희망이 있습니다. Joe.

+0

안녕 Joe, 답장을 보내 주셔서 감사합니다 (트위터;)) 설명을 통해 우리는 더 잘 이해하고 있습니다. 구독자가 게시자 대기열 (웹 API)에 메시지를 게시하고 웹 API를 실행하면 메시지가 대기열에서 사라지지만 까마귀에게 구독이 추가 된 것을 볼 수 없습니다. 게시자와 까마귀 사이의 연결 문제 일 수 있습니까? 우리는 그것을 확인해야하지만, 둘 다 동일한 서버에서 실행됩니다. 그리고 메시지 유형은 dev에서 작동하기 때문에 동일합니다. 도움을 주셔서 다시 한 번 감사 드리며 추후 조사를 통해 업데이트하겠습니다. – Dante

+0

확인되었습니다. InMemorySubscriptionStorage를 사용하도록 게시자를 전환했고 메시지가 대기열에 게시되기 시작했습니다. 어떤 이유로 인해 게시자는 기본 8080 포트에서 실행 중이더라도 Raven에 접속할 수 없습니다. 건배 – Dante

관련 문제