NServiceBus发布自动化

时间:2014-09-02 16:17:54

标签: nservicebus

我们正在使用Microsoft的发布管理来促进环境中的代码更改。如果尚未安装MSMQ队列,则安装程序将创建它们。问题是创建队列需要提升权限才能正确创建队列。发布管理代理帐户是本地计算机上的管理员。我们收到的错误消息是:

队列不存在或您没有足够的权限来执行操作。

有没有办法在安装阶段绕过队列的创建,并让服务启动时创建(默认情况下我们作为本地系统运行)?

我们欢迎任何想法,以帮助正确安装和启动此服务。

[UPDATE]

以下是日志中的消息: 2014-09-03 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()    位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs中的NServiceBus.Transports.Msmq.MsmqDequeueStrategy.QueueIsTransactional():第144行    ---内部异常堆栈跟踪结束---    位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs中的NServiceBus.Transports.Msmq.MsmqDequeueStrategy.QueueIsTransactional():第153行    at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.Init(地址,TransactionSettings设置,Func 2 tryProcessMessage, Action 2 endProcessMessage)在c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs:第67行    位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ Transport \ TransportReceiver.cs中的NServiceBus.Unicast.Transport.TransportReceiver.StartReceiver():第245行    位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ Transport \ TransportReceiver.cs中的NServiceBus.Unicast.Transport.TransportReceiver.Start(地址):第211行    位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ UnicastBus.cs中的NServiceBus.Unicast.UnicastBus.Start(Action startupAction):第806行    at NServiceBus.Hosting.GenericHost.Start()in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Hosting \ GenericHost.cs:line 78

[更新2]

在目标服务器上禁用UAC并运行" NServiceBus.Host.exe / install"后,安装和队列创建工作正常。有没有人知道我们可以在不在目标服务器上禁用UAC的情况下进行安装?

1 个答案:

答案 0 :(得分:0)

我们最终做的是创建MSMQ队列作为发布管理模板的一部分。这样,当服务安装程序运行时,已经创建了队列,这使我们能够保持启用UAC。