Как настроить очередь сообщений в качестве канала связи между двумя конечными точками WCF? - PullRequest
1 голос
/ 25 октября 2010

У меня две машины в разных доменах.Домены не известны друг другу (между ними нет доверия).Я хочу использовать привязку net.msmq для передачи данных из одной конечной точки в другую.

Итак, пусть A и S будут двумя машинами, где A должен иметь возможность отправлять сообщения S. Затем в файле конфигурации A есть определение привязки:

<netMsmqBinding>
  <binding name="msmq_Binding"
           durable="true"
           useActiveDirectory="false"
           exactlyOnce="false">
    <security>
      <transport msmqAuthenticationMode="None" msmqProtectionLevel="None"/>
    </security>
  </binding>
</netMsmqBinding>

Кроме того, следующий адрес используется для ссылки на очередь сообщений на сервере: net.msmq: // localhost / private / nc .И на этом же сервере конфигурация WCF определяет конечную точку:

<service name="Shunra.Common.Csla.WcfOneWayPortal" >
  <endpoint address="net.msmq://localhost/private/nc"
            binding="netMsmqBinding"
            bindingConfiguration="nc_msmq"
            contract="Shunra.Common.Contract.IWcfOneWayPortal" />
</service>

В моих тестах эта настройка работает, но, увы!Я тестирую его на локальной машине, поэтому ни одно из реальных ограничений не применяется.Мой вопрос - возможно ли использовать личную очередь в моем сценарии в реальном развертывании?На самом деле эти две машины расположены в двух неизвестных доменах без доверия между ними.Или мы должны использовать общедоступную очередь?

Спасибо.

1 Ответ

0 голосов
/ 03 августа 2011

Нет большой разницы между публичной и частной очередями, поскольку публичные очереди - это только те, которые перечислены в Active Directory. однако к обоим типам очередей можно получить доступ из внешних приложений, но поскольку MSMQ использует собственный протокол, это может вызвать проблемы с подключением, особенно если задействованы брандмауэры.

Альтернативой, которая может использовать http для связи между двумя очередями, является HTTP Bridge , упомянутый в Программирование служб WCF

...