LINQ 消息查询相关性

LinqMessageQueryCorrelation 示例演示如何使用一个与系统提供的 XPathMessageQuery 相对的自定义 MessageQuery 实现,执行基于内容的相关性。

演示

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

讨论 (Discussion)

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

设置、生成和运行示例

  1. 此示例使用 HTTP 终结点公开一个工作流服务。 若要运行此示例,必须通过以管理员身份运行 Visual Studio 来添加适当的 URL ACL,或在提升的提示符下执行以下命令来添加适当的 ACL。有关详细信息,请参见配置 HTTP 和 HTTPS。 确保替换了域和用户名。

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

    1. 生成解决方案。

    2. 通过右击解决方案并选择“设置启动项目”来设置多个启动项目。 将“Service”和“Client”(按此顺序)添加为多个启动项目。

    3. 运行应用。 客户端控制台演示工作流如何发送订单、接收订购单 ID 以及随后确认订单。 服务窗口将显示正在处理的请求。