2014-12-12 2 views
0

게시자 및 구독자 구성과 함께 2.5.0.1442 버전의 NserviceBus를 사용하고 있습니다. 은 로컬 컴퓨터에서 실행할 때으로 작동합니다. 구독자가 메시지를 받고 처리하는 것을 볼 수는 있지만 Windows 2008 R2 서버에 게시 할 때 메시지를받지 못합니다. 이것은 구성입니다.NserviceBus 문제 - 구독자가 메시지를받지 못합니다.

웹 응용 프로그램을 사용하여 메시지를 게시하고 게시 된 메시지를 수신하는 창 서비스를 사용합니다. 웹 응용 프로그램과 Windows 서비스는 모두 동일한 서버에 있습니다.

출판사 :

var bus = NServiceBus.Configure.WithWeb() 
 
       .Log4Net() 
 
       .DefaultBuilder() 
 
       .XmlSerializer() 
 
       .MsmqTransport() 
 
        .IsTransactional(true) 
 
        .PurgeOnStartup(false) 
 
       .MsmqSubscriptionStorage() 
 
       .UnicastBus() 
 
       .CreateBus() 
 
       .Start(); 
 

 
<MsmqTransportConfig InputQueue="tnt_publisherinput" ErrorQueue="tnt_error" NumberOfWorkerThreads="1" MaxRetries="5" /> 
 
<UnicastBusConfig> 
 
    <MessageEndpointMappings></MessageEndpointMappings> 
 
</UnicastBusConfig> 
 
<MsmqSubscriptionStorageConfig Queue="tnt_subscriptions" />

구독자 :

NServiceBus.Configure.With() 
 
.Log4Net() 
 
.DefaultBuilder() 
 
.XmlSerializer() 
 
.UnicastBus() 
 
.LoadMessageHandlers(); 
 

 

 
<MsmqTransportConfig InputQueue="timetrace_subscriberinput" ErrorQueue="timetrace_error" NumberOfWorkerThreads="1" MaxRetries="1" /> 
 
<UnicastBusConfig> 
 
    <MessageEndpointMappings> 
 
    <add Messages="Tnt.Messages" Endpoint="tnt_publisherinput" /> 
 
    </MessageEndpointMappings> 
 
</UnicastBusConfig>

,369 서비스가 시작되면 1,363,210

, 게시자와 가입자 큐 모두에 앉아 완료 메시지가 있습니다 :

<?xml version="1.0" ?> 
 
<Messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.net/NServiceBus.Unicast.Transport"> 
 
    <CompletionMessage> 
 
    <ErrorCode>0</ErrorCode> 
 
    </CompletionMessage> 
 
</Messages>

그리고 서비스가 시작된 후이 로그에서 발췌입니다 :

. 
 
. 
 
. 
 

 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Messages.ReadyMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Saga.ISagaMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Saga.TimeoutMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Grid.Messages.ChangeNumberOfWorkerThreadsMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Grid.Messages.GetNumberOfWorkerThreadsMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Grid.Messages.GotNumberOfWorkerThreadsMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Unicast.Transport.CompletionMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message NServiceBus.Unicast.Transport.SubscriptionMessage has been allocated to endpoint . 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Message Tnt.Messages.UpdatedMessage has been allocated to endpoint tnt_publisherinput. 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Associated 'Tnt.Messages.UpdatedMessage' message with 'Tnt.UpdatedHandler' handler 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Associated 'NServiceBus.Grid.Messages.ChangeNumberOfWorkerThreadsMessage' message with 'NServiceBus.Grid.MessageHandlers.ChangeNumberOfWorkerThreadsMessageHandler' handler 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Associated 'NServiceBus.Grid.Messages.GetNumberOfWorkerThreadsMessage' message with 'NServiceBus.Grid.MessageHandlers.GetNumberOfWorkerThreadsMessageHandler' handler 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Associated 'NServiceBus.IMessage' message with 'NServiceBus.Grid.MessageHandlers.GridInterceptingMessageHandler' handler 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Associated 'NServiceBus.IMessage' message with 'NServiceBus.Sagas.Impl.SagaMessageHandler' handler 
 
2014-12-12 14:20 DEBUG NServiceBus.Utils.MsmqUtilities - Checking if queue exists: timetrace_subscriberinput. 
 
2014-12-12 14:20 DEBUG NServiceBus.Utils.MsmqUtilities - Checking if queue exists: timetrace_error. 
 
2014-12-12 14:20 INFO NServiceBus.Unicast.Transport.Msmq.MsmqTransport - You are running a community edition of the software which only supports one thread. 
 
2014-12-12 14:20 INFO NServiceBus.Unicast.UnicastBus - Subscribing to Tnt.Messages.UpdatedMessage, Tnt.Messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null at publisher queue tnt_publisherinput 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Sending message NServiceBus.Unicast.Transport.CompletionMessage, NServiceBus.Core, Version=2.5.0.1442, Culture=neutral, PublicKeyToken=9fc386479f8a226c with ID 230d6ed0-8ed1-4405-a5a1-f89c5eb0b959\219324 to destination tnt_publisherinput. 
 
ToString() of the message yields: NServiceBus.Unicast.Transport.CompletionMessage 
 
Message headers: 
 
SubscriptionMessageType:Tnt.Messages.UpdatedMessage, Tnt.Messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, EnclosedMessageTypes: 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Calling 'HandleBeginMessage' on NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule 
 
2014-12-12 14:20 INFO NServiceBus.Unicast.UnicastBus - timetrace_subscriberinput initialized. 
 
2014-12-12 14:20 DEBUG NServiceBus.Unicast.UnicastBus - Calling 'HandleEndMessage' on NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule

하지만 웹 앱을 통해 메시지를 보낼 때마다 아무 일도 일어나지 않습니다. 메시지가 실제로 웹 앱에서 게시되고 메시지 어셈블리 이름이 올바른지 확인했습니다. 오류가없고 로그에 아무것도 기록되지 않습니다. 대기열에서 저널을 켰으며 완료 메시지 이외의 메시지는 없습니다. 그 밖에 무엇이 구성되어야하는지 확신 할 수 없습니다.

도와주세요.

답변

1

구독자의 끝점 매핑을 원격 서버를 가리 키도록 변경합니까?

<MessageEndpointMappings> <add Messages="Tnt.Messages" Endpoint="[email protected]" /> </MessageEndpointMappings>

당신이 NServiceBus 같은 이전 버전을 사용하는 이유는 무엇입니까?

참고 : 웹 서버를 게시자로 사용하는 경우 논리적 게시자는 1 명만 사용할 수 있습니다. 따라서 웹 계층을 확장하는 경우 구독 관리자 (모든 구독을 관리하는 프로세스

+0

관련된 원격 서버가 없습니다. 두 대기열은 모두 동일한 서버에 있습니다.그러나 행운을 위해서 서버 이름을 추가했습니다. 아직 아무것도. 또한 최신 버전으로 업그레이드하는 것은 현재 옵션이 아닙니다 (회사는 여전히 오픈 소스를 계속할 것인지 여부를 평가 중입니다) – JasmineUnique

+0

게시자에게 로깅을 추가했으며 게시자가 어떤 이유로 메시지를 보내지 않은 것으로 보입니다. – JasmineUnique

+0

동일한 서버에있는 경우 작동 할 매핑에서 servername을 제거하십시오. HTH –

0

MSMQ를 제거한 다음 서버에 "Active Directory 통합"옵션을 사용하지 않고 MSMQ를 다시 설치해야만했던 이유는 무엇입니까? 서버를 다시 시작한 후 모든 것이 잘 작동했습니다.

시간과 답변 Sean Farmar에게 감사드립니다.

+0

행복하게 정리했습니다. –