我在MSDN论坛上问过这个问题,我从John Breakwell那里得到了很多帮助,但是我无法解决我的问题,现在我又在圈子里跑了(再次)。所以也许有人可以帮助我。
我有一个远程专用队列,一个生产者应用程序和一个消费者应用程序。我正在使用带有MSMQ的Windows Server 2008。
我可以使用我的制作人应用程序发送消息,但我无法使用我的消费者阅读。这是我的消费者代码
MessageQueue rmQ = new MessageQueue("FormatName:Direct=OS:<hostname>\\private$\\<queuename>");
System.Messaging.Message msg = rmQ.Receive();
我在第二行中得到一个异常,除了堆栈跟踪
之外,异常为null而没有任何信息System.Messaging.MessageQueueException(0x80004005) 在System.Messaging.MessageQueue.MQCacheableInfo.get_ReadHandle() 在System.Messaging.MessageQueue.StaleSafeReceiveMessage(UInt32超时,Int3 2个动作,MQPROPS属性,NativeOverlapped *重叠,ReceiveCallback接收 iveCallback,CursorHandle cursorHandle,IntPtr事务) 在System.Messaging.MessageQueue.ReceiveCurrent(TimeSpan timeout,Int32 actio n,CursorHandle游标,MessagePropertyFilter过滤器,MessageQueueTransaction中 ternalTransaction,MessageQueueTransactionType transactionType) 在System.Messaging.MessageQueue.Receive() at consumer.Program.Main(String [] args)在C:\ Users \ usr \ Documents \ Visua中 l Studio 2010 \ Projects \ loadQueueTest \ consumer \ Program.cs:第20行
我已经阅读了很多内容,所以我已经做了一些事情:
我还使用rpcping和portqry来执行一些诊断,我不是专家,但似乎没问题。
有谁知道我错过了什么?
谢谢, 奥斯卡