gpt4 book ai didi

c# - MSMQ:MessageQueue.Close() 在 .EndReceive() 处抛出异常 -1073741536

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:36 24 4
gpt4 key购买 nike

我在 Windows 服务中使用 MSMQ
当服务暂停时,我想关闭 MSMQ 并在服务恢复时重新打开它。

代码如下所示:

开始

_mq.ReceiveCompleted += this.ReceiveCompletedHandler;
_mq.BeginReceive();

暂停

// MessageQueue.ClearConnectionCache();
_mq.Close();

继续

same as OnStart

现在,这在 .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

我如何防止这种发生

最佳答案

大卫,

在您的 OnPause 中尝试在调用 Close() 方法之前执行此操作:

_mq.ReceiveCompleted -= this.ReceiveCompletedHandler;

关于c# - MSMQ:MessageQueue.Close() 在 .EndReceive() 处抛出异常 -1073741536,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19522708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com