LINQ 消息查询相关性

LinqMessageQueryCorrelation 示例演示如何使用自定义MessageQuery实现,而不是系统提供的XPathMessageQuery实现,来执行基于内容的关联。

演示

自定义 MessageQuery,基于内容的相关性。

讨论

此示例演示如何出于关联目的从 MessageQuery 基类进行扩展。 自定义实现LinqMessageQuery,允许用户通过 XLinq 提供一个 XName,以在消息中进行查找。 查询检索到的数据用于创建关联键,以将消息发送到相应的工作流实例。

设置、生成和运行示例

  1. 此示例使用 HTTP 终结点公开工作流服务。 若要运行此示例,必须添加适当的 URL 访问控制列表(请参阅 配置 HTTP 和 HTTPS 了解详细信息)。您可以通过以管理员身份运行 Visual Studio 或在提升的命令提示符下执行以下命令来添加相应的 ACL。 确保替换了域和用户名。

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. 添加 URL ACL 后,请使用以下步骤。

    1. 生成解决方案。

    2. 右键单击解决方案并选择“ 设置启动项目”,设置多个启动项目。 将服务和客户端(按该顺序)添加为多个启动项目。

    3. 运行该应用程序。 客户端控制台显示一个工作流发送订单并接收采购订单 ID,然后随后确认订单。 “服务”窗口将显示正在处理的请求。