我们正在使用MessageQueue.EndReceive
异步地从Windows服务中的本地MSMQ检索消息。
有时,该方法会失败并显示NullReferenceException
。
MSDN并未将此作为可能的例外情况进行记录,并且快速查看来源并未显示可能发生的情况;代码似乎验证所有引用,而是抛出Argument*Exception
。
知识库文章在依赖于消息队列的客户端(KB 816497)上执行异步接收操作时收到错误消息,并将其记录为.NET Framework 1.0 1.1 bug,表明它已在后续版本中修复。 Cursors
还存在references问题,我们不会使用这些问题。
所提出的解决方案并不直接相关,因为AsyncResult
看起来有效,建议的缓存似乎是多余的。相反,MessageQueue.EnableConnectionCache
看起来不合适,因为代码在启动后不会修改连接队列集。
是否有针对此的书面解决方案,或者是已知原因和已建立的解决方法?