2010-02-22 60 views
2

幾個月後,我終於回到使用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() 
+0

我只是嘗試手動創建隊列也沒有工作。 – stimms 2010-02-24 17:25:45

回答

2

事實證明我是個白癡和烏迪就已經解決了這個在第二個有我張貼所有需要的信息。我的配置文件包含

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

    <UnicastBusConfig> 
    <MessageEndpointMappings> 

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

正如你可以看到我試圖聽上一個不存在的隊列稱爲EnformMessages消息。將其更改爲InputQueue名稱或將InputQueue名稱更改爲EnformMessages即可解決問題。我很尷尬我的愚蠢

+0

當我設置.IsTransactional(false)時,我也得到了這個錯誤信息,但應該是真的 – Matt 2013-04-02 20:54:43