MSMQ - 将消息发送到另一个队列时无法访问已关闭的流

时间:2015-08-18 16:39:43

标签: c# msmq

我正在从请求队列中读取消息,处理请求,然后将处理后的请求的结果放在响应队列中。如果处理失败,我尝试使用用于读取原始邮件的相同事务将请求邮件移动到失败的请求队列中。

failedRequestQueue.Send(message, transaction);
transaction.Commit();

但是,调用发送失败,使用"无法访问已关闭的流。"

1 个答案:

答案 0 :(得分:0)

当读取原始请求消息的BodyStream时,我正在使用在using块中创建的StreamReader,而该块又关闭了消息的BodyStream,防止在将消息从请求队列移动到失败时被读取请求队列。从StreamReader中删除using语句修复了此问题。