Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MessageQueue.EndReceive偶尔会引发NullReferenceException_C#_.net_Msmq - Fatal编程技术网

C# MessageQueue.EndReceive偶尔会引发NullReferenceException

C# MessageQueue.EndReceive偶尔会引发NullReferenceException,c#,.net,msmq,C#,.net,Msmq,我们正在使用MessageQueue.EndReceive从Windows服务中的本地MSMQ异步检索消息 有时,该方法会失败,并出现NullReferenceException 没有将此记录为可能的异常,快速查看源代码不会显示可能发生这种情况的位置;代码似乎验证了所有引用,并将抛出一个参数*Exception 在一篇知识库文章中,当您在依赖消息队列的客户机()上执行异步接收操作时,您会收到一条错误消息,该文章将此记录为.NET Framework 1.0 | 1.1错误,表明此错误已在后续版本

我们正在使用
MessageQueue.EndReceive
从Windows服务中的本地MSMQ异步检索消息

有时,该方法会失败,并出现
NullReferenceException

没有将此记录为可能的异常,快速查看源代码不会显示可能发生这种情况的位置;代码似乎验证了所有引用,并将抛出一个
参数*Exception

在一篇知识库文章中,当您在依赖消息队列的客户机()上执行异步接收操作时,您会收到一条错误消息,该文章将此记录为.NET Framework 1.0 | 1.1错误,表明此错误已在后续版本中修复。我们不使用的
游标也存在问题

所提供的解决方案没有直接关系,因为
AsyncResult
看起来有效,并且建议的缓存似乎是多余的。相反,由于代码在启动后不修改连接的队列集,因此此选项看起来不合适


对此是否有记录在案的解决方案,或者原因是否已知,是否有现成的解决办法?

总体信息是什么?您是否检查了
IAsyncResult
是否如文章所示尚未收集?消息大小很小(~1k)。队列在任何时候都只有一个未完成的BeginReceive。我不认为这是原因,但会再次检查。
IAsyncResult
是有效的,并且包含我们定义的有效的
AsyncState
。我偶尔会看到类似的行为,套接字类型上的EndRecieve抛出空引用异常,IAsyncResult看起来有效(具有非空AsyncState)。