几个月后,我终于回到使用nservicebus并开始在服务器上测试它。不幸的是我得到了这个例外
The queue does not exist or you do not have sufficient permissions to perform the operation.
我已经使用计算机管理器进行了检查,并且队列确实存在,并且我已经授予每个人对队列的完全控制权,但是这个问题仍然存在。我做错了什么?
我正在使用
var bus = NServiceBus.Configure.With()
.SpringBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.LoadMessageHandlers()
.CreateBus()
.Start();
和
<MsmqTransportConfig
InputQueue="ListenQueue"
ErrorQueue="error"
NumberOfWorkerThreads="1"
MaxRetries="5"
/>
我在开发箱上工作得很好。完整的堆栈跟踪(似乎没有那么有用)看起来像
System.Messaging.MessageQueueException was unhandled
Message=The queue does not exist or you do not have sufficient permissions to perform the operation.
Source=NServiceListener
ErrorCode=-2147467259
StackTrace:
at NServiceListener.Program.Main(String[] args) in C:\temp\NServiceListener\NServiceListener\Program.cs:line 35
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
答案 0 :(得分:2)
事实证明我是个白痴,如果我发布了所有必需的信息,Udi会在一秒钟内解决这个问题。我的配置文件包含
<MsmqTransportConfig
InputQueue="ListenQueue"
ErrorQueue="error"
NumberOfWorkerThreads="1"
MaxRetries="5"
/>
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="EnformMessages" Endpoint="EnformMessages" />
</MessageEndpointMappings>
</UnicastBusConfig>
正如您所看到的,我正在尝试在名为EnformMessages的不存在的队列上侦听消息。将其更改为InputQueue名称或将InputQueue名称更改为EnformMessages解决了该问题。我的愚蠢让我感到尴尬