2010-03-04 3 views
1

В моей конфигурации сообщение издателя У меня естьПересылка сообщений для удаленной конечной точки в Nservicebus

<MsmqTransportConfig 
    InputQueue="EnformMessages" 
    ErrorQueue="error" 
    NumberOfWorkerThreads="1" 
    MaxRetries="5" 
    /> 
    <UnicastBusConfig ForwardReceivedMessagesTo="[email protected]"> 
     <MessageEndpointMappings> 
     <!-- publishers don't need to set this for their own message types --> 
     </MessageEndpointMappings> 
    </UnicastBusConfig> 

который я надеялся, что будет копировать сообщения, опубликованные в EnformMessages в очереди на удаленном компьютере. Сообщения, которые, как представляется, не отправляются на удаленный компьютер, хотя сообщения, безусловно, принимаются локально. Файл конфигурации на пульте дистанционного слушателя выглядит

<MsmqTransportConfig 
    InputQueue="worker" 
    ErrorQueue="error" 
    NumberOfWorkerThreads="1" 
    MaxRetries="5" 
    /> 

    <UnicastBusConfig> 
    <MessageEndpointMappings> 

     <add Messages="EnformMessages" Endpoint="testqueue" /> 
    </MessageEndpointMappings> 
    </UnicastBusConfig> 

Я также попытался с помощью дистрибьютора в моде, описанной в http://www.candland.net/blog/2009/06/08/NServiceBusDistributorOverview.aspx. Так что моя конфигурация издателя выглядела

<MsmqTransportConfig 
    InputQueue="client" 
    ErrorQueue="error" 
    NumberOfWorkerThreads="1" 
    MaxRetries="5" 
    /> 

    <UnicastBusConfig 
    DistributorControlAddress="" 
    DistributorDataAddress="" 
    ForwardReceivedMessagesTo=""> 

    <MessageEndpointMappings> 
     <!-- publishers don't need to set this for their own message types --> 
     <add Messages="EnformMessages" Endpoint="[email protected]" /> 
     </MessageEndpointMappings> 
    </UnicastBusConfig> 

конфигурация Абонента как

<MsmqTransportConfig 
    InputQueue="EnformMessages" 
    ErrorQueue="error" 
    NumberOfWorkerThreads="1" 
    MaxRetries="5" 
    /> 

    <UnicastBusConfig 
    DistributorControlAddress="[email protected]" 

     DistributorDataAddress="[email protected]"> 
    <MessageEndpointMappings> 

     <!--<add Messages="EnformMessages" Endpoint="EnformMessages" />--> 
    </MessageEndpointMappings> 
    </UnicastBusConfig> 

и распределитель, как

<appSettings> 
    <add key="NumberOfWorkerThreads" value="1"/> 

    <add key="DataInputQueue" value="distributorDataBus"/> 
    <add key="ControlInputQueue" value="distributorControlBus"/> 
    <add key="ErrorQueue" value="error"/> 
    <add key="StorageQueue" value="distributorStorage"/> 

    <add key="NameSpace" value="http://www.UdiDahan.com"/> 
    <!-- relevant for a Serialization of "interfaces" or "xml" --> 

    <add key="Serialization" value="xml"/> 
    <!-- can be either "xml", or "binary" --> 
    </appSettings> 


    <MsmqTransportConfig 
InputQueue="distributorControlBus" 
ErrorQueue="error" 
NumberOfWorkerThreads="1" 
MaxRetries="5" 
    /> 

    <UnicastBusConfig > 
    <MessageEndpointMappings > 

     <add Messages="EnformMessages" Endpoint="EnformMessages" /> 
    </MessageEndpointMappings> 
    </UnicastBusConfig> 

Нет сообщений, кажется, прибывают. На самом деле ничего не распечатывается дистрибьютором. Я добавил раздел журнала в файл конфигурации в надежде, что он произведет какой-то результат, но ничего не получит.

Nservicebus 2.0.0.768

+0

Первые вещи - обновление до RTM :-) –

+0

А, это хорошая идея. Я сделал, а затем вернулся к точке, в которой работает локальный паб/подкачка – stimms

ответ

3

В сценарии паб/к югу, то абонент, который будет перенаправлять сообщения в очередь аудита, а не издатель. Кроме того, вы сказали своему подписчику, что его издатель «testqueue», но вы указали входную очередь своего издателя как «EnformMessages». Эти две очереди должны совпадать.

+0

Итак, ForwardRecievedMessagesTo действительно просто для аудита и не должен использоваться для распространения сообщений в том виде, в котором я пытаюсь. testqueue был только для того, когда я вставлял вопрос. Это EnformMessages в реальности – stimms

+0

Чтение еще немного кажется, что я не должен использовать возможности удаленной очереди MSMQ 4 по разным причинам. Думаю, я попробую дистрибьютора снова. – stimms

+0

Хорошо, некоторый прогресс. Развертывание распространителя на машине слушателя вместе со слушателем, похоже, показывает, что слушатель подключен к дистрибьютору. Теперь как получить сообщения дистрибьютору? – stimms