Ошибка создания очереди в nservicebus

Через несколько месяцев я наконец вернулся к использованию nservicebus и начал тестировать его на сервере. К сожалению, я получаю это исключение

 The queue does not exist or you do not have sufficient permissions to perform the operation.

Я проверил с помощью диспетчера компьютеров, и очередь действительно существует, и я предоставил всем полный контроль над очередью, однако эта проблема сохраняется. Что я делаю не так?

Я использую

  var bus = NServiceBus.Configure.With()
                  .SpringBuilder()
                  .XmlSerializer()
                  .MsmqTransport()
                      .IsTransactional(true)
                      .PurgeOnStartup(false)
                  .UnicastBus()
                      .ImpersonateSender(false)
                      .LoadMessageHandlers()
                  .CreateBus()
              .Start();

и

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

Я отлично работаю на своем ящике для разработчиков. Полная трассировка стека (которая не кажется такой уж полезной) выглядит так:

System.Messaging.MessageQueueException was unhandled
  Message=The queue does not exist or you do not have sufficient permissions to perform the operation.
  Source=NServiceListener
  ErrorCode=-2147467259
  StackTrace:
       at NServiceListener.Program.Main(String[] args) in C:\temp\NServiceListener\NServiceListener\Program.cs:line 35
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

person stimms    schedule 22.02.2010    source источник
comment
Я только что попытался вручную создать очереди, которые также не сработали.   -  person stimms    schedule 24.02.2010


Ответы (1)


Как оказалось, я идиот, и Уди решил бы это за секунду, если бы я разместил всю необходимую информацию. Мой файл конфигурации содержит

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

  <UnicastBusConfig>
    <MessageEndpointMappings>

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

Как видите, я пытаюсь прослушать сообщения в несуществующей очереди под названием EnformMessages. Изменение этого имени на имя InputQueue или изменение имени InputQueue на EnformMessages решило проблему. меня смущает моя глупость

person stimms    schedule 24.02.2010
comment
Я также получил это сообщение об ошибке, когда установил .IsTransactional(false), но должен был быть правдой - person Matt; 03.04.2013