在nservicebus中创建队列时出错

时间:2010-02-22 18:25:05

标签: 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()

1 个答案:

答案 0 :(得分:2)

事实证明我是个白痴,如果我发布了所有必需的信息,Udi会在一秒钟内解决这个问题。我的配置文件包含

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

  <UnicastBusConfig>
    <MessageEndpointMappings>

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

正如您所看到的,我正在尝试在名为EnformMessages的不存在的队列上侦听消息。将其更改为InputQueue名称或将InputQueue名称更改为EnformMessages解决了该问题。我的愚蠢让我感到尴尬