安装NServiceBus基础设施

安装NServiceBus基础设施,nservicebus,Nservicebus,我目前正在试用NServiceBus,它在我的系统上运行良好。现在,我想将其安装在我们的一个内部服务器上,以记录从头开始安装nservicebus需要做什么。我目前的策略是调用NServiceBus.Host/installInfrastructure,它报告说安装了RavenDB、Msmq和DTC,这似乎可行。但是,当我尝试(以管理员身份)运行示例应用程序时,出现了一个异常: 2012-12-07 15:13:43,599 [1] FATAL NServiceBus.Hosting.Gener

我目前正在试用NServiceBus,它在我的系统上运行良好。现在,我想将其安装在我们的一个内部服务器上,以记录从头开始安装nservicebus需要做什么。我目前的策略是调用
NServiceBus.Host/installInfrastructure
,它报告说安装了RavenDB、Msmq和DTC,这似乎可行。但是,当我尝试(以管理员身份)运行示例应用程序时,出现了一个异常:

2012-12-07 15:13:43,599 [1] FATAL NServiceBus.Hosting.GenericHost [(null)] <(null)> - System.InvalidOperationException: There is a problem with the input queue: FormatName:DIRECT=OS:dev\private$\els.bus.els.service. See the enclosed exception for details. ---> System.Messaging.MessageQueueException: The queue does not exist or you do not have sufficient permissions to perform the operation.
   at System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional()
   at System.Messaging.MessageQueue.get_Transactional()
   at NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.QueueIsTransactional()
   --- End of inner exception stack trace ---
   at NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.QueueIsTransactional()
   at NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.Init(Address address, Boolean transactional)
   at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.NServiceBus.Unicast.Transport.ITransport.Start(Address address)
   at NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(Action startupAction)
   at NServiceBus.Hosting.GenericHost.Start()
2012-12-07 15:13:43599[1]致命的NServiceBus.Hosting.genericost[(null)]-System.invalidoOperationException:输入队列有问题:FormatName:DIRECT=OS:dev\private$\els.bus.els.service。有关详细信息,请参见随附的例外情况。-->System.Messaging.MessageQueueException:队列不存在,或者您没有足够的权限执行该操作。
在System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional()中
在System.Messaging.MessageQueue.get_Transactional()中
在NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.QueueIsTransaction()处
---内部异常堆栈跟踪的结束---
在NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.QueueIsTransaction()处
位于NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.Init(地址地址,布尔事务)
在NServiceBus.Unicast.Transport.Transactional.Transactional.NServiceBus.Unicast.Transport.ITransport.Start(地址)处
在NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(操作startupAction)
在NServiceBus.Hosting.genericost.Start()处

有什么我遗漏的吗?

除了安装基础设施,您还需要调用/install标志来创建队列(需要管理员权限)。

除了安装基础设施,您还需要调用/install标志来创建队列(需要管理员权限).

您是创建队列还是让NSB创建的?一些问题:您使用的是什么配置文件?运行此代码的计算机是否命名为
dev
?否则,您将尝试创建一个远程队列,这需要在该计算机上具有权限。如果这是本地计算机,您是否尝试过手动创建队列?如果在运行主机之前创建队列
els.bus.els.service
,会发生什么情况?是创建队列还是让NSB创建队列?一些问题:您运行的是什么配置文件?运行此代码的计算机是否命名为
dev
?否则,您将尝试创建一个远程队列,这需要在该计算机上具有权限。如果这是本地计算机,您是否尝试过手动创建队列?如果在运行主机之前创建队列
els.bus.els.service
,会发生什么?这似乎是将应用程序作为服务安装的。这是创建队列所必需的吗?如果您通过Visual Studio在调试模式下运行队列,则创建队列时不会将进程安装为Windows服务。但这似乎是将应用安装为服务。这是创建队列所必需的吗?如果通过Visual Studio在调试模式下运行队列,则创建队列时不会将进程安装为Windows服务。