MSMQ:MessageQueue.Close() 在 抛出异常 -1073741536 .EndReceive()
本文关键字:抛出异常 -1073741536 EndReceive Close MSMQ MessageQueue | 更新日期: 2023-09-27 18:36:22
我在Windows Service中使用MSMQ.
当服务暂停时,我想关闭 MSMQ 并在服务恢复时重新打开它。
代码如下所示:
启动
_mq.ReceiveCompleted += this.ReceiveCompletedHandler;
_mq.BeginReceive();
暂停时
// MessageQueue.ClearConnectionCache();
_mq.Close();
继续
与启动相同
现在,这有效,但是.Close()
在ReceiveCompletedHandler
中抛出异常后:
private void ReceiveCompletedHandler(object sender, ReceiveCompletedEventArgs e)
{
Message message = this.mq.EndReceive(e.AsyncResult); // or e.Message
// do stuff
}
异常详情:
类型: MessageQueueException
消息: null
错误代码: -2147467259
MessageQueueErrorCode: -1073741536
如何防止这种情况发生?
David,
在 OnPause 中,尝试在调用 Close() 方法之前执行此操作:
_mq。接收已完成 -= 这个。接收完成处理程序;