首页 文章

NServiceBus发布自动化

提问于
浏览
1

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

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

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

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

[UPDATE]

以下是日志中的消息:2014-09-03 08:47:55.522 -04:00 [致命]启动 endpoints 时出现异常 . System.InvalidOperationException:输入队列存在问题:FormatName:DIRECT = OS:DNABUS1 \ private $ \ Purchasing.OrderEntry.Bridging . 有关详细信息,请参阅随附的异---> System.Messaging.MessageQueueException:队列不存在或您没有足够的权限来执行操作 . at System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional()at System.Messaging.MessageQueue.get_Transactional()at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.QueueIsTransactional()in c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \ Msmq \ MsmqDequeueStrategy.cs:第144行---内部异常堆栈跟踪结束---位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core中的NServiceBus.Transports.Msmq.MsmqDequeueStrategy.QueueIsTransactional()传输\ Msmq \ MsmqDequeueStrategy.cs:位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Transports \的NServiceBus.Transports.Msmq.MsmqDequeueStrategy.Init(地址,TransactionSettings设置,Func 2 tryProcessMessage, Action 2 endProcessMessage)中的第153行Msmq \ MsmqDequeueStrategy.cs:NServiceBus.Unicast.Transport.TransportReceiver.StartReceiver()中的第67行:位于NServiceBus.Unicast的c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ Transport \ TransportReceiver.cs:第245行.Transport.TransportReceiver .Start(地址)位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ Transport \ TransportReceiver.cs:第211行,位于c:\ BuildAgent \中的NServiceBus.Unicast.UnicastBus.Start(Action startupAction) work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Unicast \ UnicastBus.cs:位于c:\ BuildAgent \ work \ 31f8c64a6e8a2d7c \ src \ NServiceBus.Core \ Hosting \ GenericHost.cs中NServiceBus.Hosting.GenericHost.Start()的第806行:第78行

[UPDATE 2]

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

1 回答

  • 0

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

相关问题