Как изменить приоритет сообщения в MSMQ?

У меня проблема с изменением приоритета сообщения, отправляемого в определил MSMQ. Каждый раз, когда я устанавливаю приоритет сообщения, это никогда не влияет на приоритет сообщения в очереди Вот фрагмент того, что я делаю:

static public void QueueBatchItem(MessageQueue mq, MessageQueueTransaction msgTx, MessagePriority msgPriority)
{
    using (System.Messaging.Message mm = new System.Messaging.Message())
    {
        string messageLabel = Guid.NewGuid().ToString();
        System.Messaging.XmlMessageFormatter formatter = new XmlMessageFormatter();

        RunSimulationRequestDTO dto = new RunSimulationRequestDTO();
        dto.RetryCount = 0;
        dto.BatchHeaderID = batchID;
        dto.MSMQLabel = messageLabel;

        mq.MessageReadPropertyFilter.Priority = true;
        mm.Priority = msgPriority;

        mm.Body = dto;
        mm.Label = messageLabel;
        mm.Formatter = formatter;
        mq.Send(mm, msgTx);

    }
}

Если я отлаживаю через code, приоритет по умолчанию - «Нормальный», а когда элемент отправляется в очередь, приоритет отображается как 0 с «Сообщения очереди». Я могу передать приоритет как MessagePriority.High или любое из 8 возможных значений, и это никогда не меняет приоритет.

Чего мне не хватает в этом ... несколько примеров, которые я видел, показали, что все имеет базовое значение, так как

Message mm = new Message();
mm.Priority = MessagePriority.High;

Я даже пробовал небольшие тестовые приложения вне моего основного кода с примерами MSDN и номер приоритета никогда не меняется.

спасибо.

edit: Я убедился, что приоритет, который я видел, не исходил от потока, установив его на AboveNormal

  <ThreadManagersConfiguration DefaultSleepBetweenPolls="5000" DefaultMsmqServer=".">
    <ThreadManagers>
      <add DisplayName="BatchSimulationManager" 
           RequestMSMQ=".\Private$\BatchSimulationRequest" 
           ResponseMSMQ="" 
           FailedMSMQ=".\Private$\BatchSimulationFailure" 
           Priority="AboveNormal" 
           TransactionalMode="RollbackTransaction" 
           MaxThreads="16" 
           SleepTimeBetweenPolling="10000" 
           ProcessModel="BATCH"/>
    </ThreadManagers>
  </ThreadManagersConfiguration>

queue

6
задан Christopher Klein 21 November 2011 в 16:46
поделиться