2012-12-07 81 views
1

我目前正在尝试NServiceBus,它在我的系统上运行良好。现在我想将其安装在我们的一台内部服务器上,以记录从头开始设置nservicebus需要做些什么。我目前的策略是调用NServiceBus.Host /installInfrastructure这似乎工作,它报告安装RavenDB和Msmq和DTC。然而,当我尝试运行我的示例应用程序(如管理员),我得到一个异常:安装NServiceBus基础设施

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() 

有什么我失踪?

+0

您是创建队列还是让NSB创建队列? –

+0

一些问题:你在哪个档案中跑步?您在名为'dev'上运行此代码的机器是?否则,您正尝试创建一个远程队列,该队列需要该机器上的权限。如果这是本地机器,您是否尝试过手动创建队列?如果您在运行主机之前创建队列“els.bus.els.service”,会发生什么情况? – carlpett

回答

6

除了安装基础架构之外,还需要调用/ install标志来获取您创建的队列(这需要管理员权限)。

+0

虽然这似乎将应用程序安装为服务。是否需要创建队列? – carl

+2

如果通过Visual Studio以调试模式运行它们,则创建队列时不会将过程安装为Windows服务。 –