Message.LookupId 属性

定义

在 MSMQ 3.0 中引入。 获取消息的查找标识符。

public:
 property long LookupId { long get(); };
public long LookupId { get; }
member this.LookupId : int64
Public ReadOnly Property LookupId As Long

属性值

消息的查找标识符,由消息队列生成,对消息驻留的队列是唯一的。

例外

未安装 MSMQ 3.0。

消息尚未发送。 该属性只能在从队列中检索的消息上读取。

- 或 -

消息队列经过筛选后忽略了 LookupId 属性。

注解

属性 LookupId 提供对消息的查找标识符的只读访问权限。 MSMQ 3.0 中引入的查找标识符是消息队列生成的 64 位标识符,并在消息放入队列时分配给每条消息。 查找标识符与发送消息时生成的消息标识符不同。

消息队列为放置在任何队列中的所有消息(包括应用程序生成的目标、管理和报告队列,以及系统生成的日记、死信、连接器和传出队列)生成查找标识符。 换句话说,这包括通过发送应用程序和消息队列发送的消息。 查找标识符对队列是唯一的,在队列之外没有任何意义。

如果将消息发送到多个目标队列,或者消息的副本存储在计算机日记或队列日记中,则消息的每个副本在放置在其各自的队列中时将具有自己的查找标识符。

只能在 LookupId 从队列检索到的消息上读取 属性。

查找标识符用于读取队列中的特定消息。 消息的查找标识符已知后,接收应用程序可以调用 PeekByLookupIdReceiveByLookupId 函数直接转到该消息并查看或从队列中检索,这与必须在队列前面开始并导航到队列末尾的游标不同,

应用程序负责获取队列中消息的查找标识符。 获取查找标识符的一种可能方法是为目标队列创建触发器,该触发器调用一个组件,该组件在将每个消息放置在队列中时缓存这些消息的标识符。

适用于

另请参阅