게시자 및 구독자 구성과 함께 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>
, 게시자와 가입자 큐 모두에 앉아 완료 메시지가 있습니다 :
<?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
하지만 웹 앱을 통해 메시지를 보낼 때마다 아무 일도 일어나지 않습니다. 메시지가 실제로 웹 앱에서 게시되고 메시지 어셈블리 이름이 올바른지 확인했습니다. 오류가없고 로그에 아무것도 기록되지 않습니다. 대기열에서 저널을 켰으며 완료 메시지 이외의 메시지는 없습니다. 그 밖에 무엇이 구성되어야하는지 확신 할 수 없습니다.
도와주세요.
관련된 원격 서버가 없습니다. 두 대기열은 모두 동일한 서버에 있습니다.그러나 행운을 위해서 서버 이름을 추가했습니다. 아직 아무것도. 또한 최신 버전으로 업그레이드하는 것은 현재 옵션이 아닙니다 (회사는 여전히 오픈 소스를 계속할 것인지 여부를 평가 중입니다) – JasmineUnique
게시자에게 로깅을 추가했으며 게시자가 어떤 이유로 메시지를 보내지 않은 것으로 보입니다. – JasmineUnique
동일한 서버에있는 경우 작동 할 매핑에서 servername을 제거하십시오. HTH –