gpt4 book ai didi

c# - 偷看的 MSMQ 消息的 message.ID 以某种方式丢失

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

我有一些旧代码,使用 BeginPeek/EndPeek 查看来自 MSMQ 的消息。偷看后直接比对消息ID成功:

if (message.Id != _lastMessageID) { // ... }

稍后在代码中 message.Id 被传递给 ReceiveById 方法。这在大多数情况下都有效,但是偶尔会在这个位置抛出异常:

System.InvalidOperationException: Property Label was not retrieved when receiving the message

所以有时候 message.Id 似乎同时丢失了。有人知道这样的行为吗?或者有什么想法?

最佳答案

我以前遇到过这个问题。问题是我的代码两次调用 BeginPeek,这导致 PeekCompleted 事件被抛出两次,每次都使用相同的消息。检查消息 ID 以查看您的应用程序是否已在较早的时间点收到产生错误的消息。我必须打印出消息 ID 作为我的 PeekComplete 事件处理程序中的第一步来捕获它。如果已经调用 BeginPeek 并且尚未返回,则必须非常小心不要调用 BeginPeek。

关于c# - 偷看的 MSMQ 消息的 message.ID 以某种方式丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10171607/

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