Почему мои поставленные в очередь сообщения WCF незаметно исчезают?

У меня есть настройка очереди транзакций MSMQ на сервере THOR. Я могу отправлять сообщения в эту очередь с рабочей станции со следующим кодом:

var queue = new MessageQueue("FormatName:Direct=OS:thor\\private\\myqueue");
using (var tx = new MessageQueueTransaction())
{
   tx.Begin();
   queue.Send("test", tx);
   tx.Commit();
}

Однако, когда я пытаюсь подключиться с помощью WCF, мои сообщения никогда не появляются в очереди. Вот конфигурация, которую я использую:

<system.serviceModel>
  <bindings>
    <netMsmqBinding>
      <binding name="ClientNewsFeedServiceBinding" durable="true" exactlyOnce="true">
        <security mode="None" />
      </binding>
    </netMsmqBinding>
  </bindings>

  <client>
    <!-- NewsFeed Service -->
    <endpoint name="INewsFeedService"
              address="net.msmq://thor/private/myqueue"
              binding="netMsmqBinding"
              bindingConfiguration="ClientNewsFeedServiceBinding"
              contract="Service.Contract.INewsFeedService" />
  </client>
</system.serviceModel>

И код:

using (var tx = new TransactionScope())
{
   var cf = new ChannelFactory<INewsFeedService>("INewsFeedService");
   var service = cf.CreateChannel();
   service.TestMessage("test");
   ((IChannel)service).Close();
   tx.Complete();
}

Я не получаю никаких исключений, но в очереди на THOR нет сообщений. Любые идеи? Я даже не знаю, как отладить это, поскольку он просто не работает.

UPDATE

Если я изменю свой URI MSMQ на 'net.msmq: // localhost / private / myqueue', он отправит сообщение на локальный транзакционная очередь, которую я настроил. Настройка самой очереди идентична (например, я выполнил те же шаги для создания очереди localhost и THOR).

8
задан abatishchev 28 May 2012 в 11:43
поделиться