尝试抓取LookupId时,Send()之后的MSMQ InvalidOperationException

Coo*_*ame 1 .net msmq windows-7

Windows 7 32位,.NET4.具体来说,当我这样做时:

_queue.Send(mqMessage);
return mqMessage.LookupId;
Run Code Online (Sandbox Code Playgroud)

我在LookupId的访问上得到一个InvalidOperationException.异常消息是:

未为此消息定义查找标识符.该消息不是通过调用Receive方法创建的,或者查找标识符未添加到要检索的属性中.

对我来说这听起来好像消息没有成功发送到MSMQ.我在"控制面板"\"所有控制面板项目\程序和功能"中的"打开或关闭Windows功能"选项中安装了所有与MSMQ相关的功能.

如果我查看本地Windows服务,我会看到"消息队列"和"消息队列触发器"已启动并正在运行.

知道这里发生了什么吗?

Han*_*ant 5

Message.LookupId的MSDN Library文章中明确提到了这一点:

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

仅在收到消息时使用,而不是在发送时使用.为了使其直观:可以将已发送的消息分派到多个队列,消息的每个副本都有自己的ID.因此,发送站点可能没有唯一的ID.