2014-09-02 61 views
1

我們正在使用Microsoft的發佈管理來促進通過環境的代碼更改。如果安裝程序尚未安裝,則會創建MSMQ隊列。問題是創建隊列需要提升權限才能正確創建隊列。發佈管理代理帳戶是本地計算機上的管理員。我們收到的錯誤消息是:NServiceBus發佈自動化

隊列不存在或者您沒有足夠的權限執行該操作。

有沒有辦法在安裝階段繞過創建隊列,並讓創建在服務啓動時發生(默認情況下我們將作爲本地系統運行)?

我們願意幫助您正確安裝和啓動此服務。

[UPDATE]

下面是從日誌中的消息: 2014年9月3日08:47:55.522 -04:00 [致命]異常起始端點時。 System.InvalidOperationException:輸入隊列存在問題:FormatName:DIRECT = OS:DNABUS1 \ private $ \ Purchasing.OrderEntry.Bridging。詳情請參閱隨附的例外---> System.Messaging.MessageQueueException:隊列不存在或您沒有足夠的權限執行操作。 在System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional() 在System.Messaging.MessageQueue.get_Transactional() 在NServiceBus.Transports.Msmq.MsmqDequeueStrategy.QueueIsTransactional(c)中:\ BuildAgent \工作\ 31f8c64a6e8a2d7c \ SRC \ NServiceBus .Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs:144行 ---內部異常堆棧跟蹤的末端--- at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.QueueIsTransactional()in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs:line 153 at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.Init(Address address,TransactionSettings settings,Func 2 tryProcessMessage, Action 2 endProcessMessage)in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs:line 67 at NServiceBus.Unicast.Transport.TransportReceiver.StartReceiver()in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ Transport \ TransportReceiver.cs:line 245 at NServiceBus.Unicast.Transport.TransportReceiver.Start (Address address)in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ Transport \ TransportReceiver.cs:line 211 at NServiceBus.Unicast.UnicastBus.Start(Action startupAction)in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ UnicastBus.cs:line 806 at NServiceBus.Hosting.GenericHost.Start()in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Hosting \ GenericHost.cs: line 78

[UPDATE 2]

禁用目標服務器上的UAC並運行「NServiceBus.Host.exe/install」後,安裝和隊列創建工作正常。有沒有人知道我們可以在不禁用目標服務器上的UAC的情況下進行安裝?

+0

你運行主機安裝NServiceBus.Integration參數? – 2014-09-03 13:25:27

+0

我從自動發佈工具運行「NServiceBus.Host.exe/install」。我已經禁用服務器上的UAC,並且仍然收到相同的消息。主機操作系統準備就緒(Perf Counters,RavenDB,MSMQ等)並等待安裝。我可以從管理員命令提示符下運行,並且它可以正常工作。 – SamtecCraig 2014-09-03 13:29:28

+0

另一種選擇可能是使用[PowerShell](http://docs.particular.net/nservicebus/managing-nservicebus-using-powershell)並只安裝你想要的。這將需要您的管道中的另一個步驟 – 2014-09-04 08:50:16

回答

0

我們最終做的是創建MSMQ隊列作爲發佈管理模板的一部分。這樣,當服務安裝程序運行時,隊列已經創建,這使我們能夠保持UAC的啓用。