【问题标题】:WCF router with priority filters具有优先级过滤器的 WCF 路由器
【发布时间】:2012-07-03 23:21:15
【问题描述】:

为了准备我的 70-513 考试,我发现了以下问题:

Windows Communication Foundation (WCF) 解决方案使用两个服务 管理购物车。服务 A 处理包含行的消息 总价值在 0 美元到 500 美元之间的物品。服务 B 处理消息 包含总额超过 500 美元的订单项。所有的消息都是 与业务逻辑同等重要。您需要路由传入 使用 WCF 路由将消息发送到相应的服务。哪两个 您应该将消息过滤器添加到路由器吗? (每个正确答案 提出部分解决方案。选择两个。)

  • A.一个优先级为 100 的消息过滤器,它将总价值在 0 美元到 500 美元之间的消息转发到服务 A
  • 乙。一个优先级为 0 的消息过滤器,它将总价值在 0 美元到 500 美元之间的消息转发给服务 A
  • C.一个优先级为 0 的消息过滤器,它将所有消息转发到服务 B
  • D.一个优先级为 100 的消息过滤器,它将所有消息转发到服务 B

答案是 A 和 C。

如果 A 和 C 是答案,那么为什么 B 和 D 也不正确呢?这两对是对称的。

【问题讨论】:

    标签: wcf wcf-routing


    【解决方案1】:

    它们不是对称的。

    A&C:

    • Filter1 -> 0-500 到 ServiceA -> 100 优先级
    • Filter2 -> 全部到 ServiceB -> 0 优先级

    B&D

    • Filter1 -> 0-500 到 ServiceA -> 0 优先级
    • Filter2 -> 全部到 ServiceB -> 100 优先级

    当路由器接收到消息时,该消息将通过所有针对该传入消息类型存在的过滤器进行路由。

    这意味着针对多个过滤器评估消息内容,因此需要在过滤器冲突的情况下建立优先级。

    A&C 正确的原因是当收到消息时,有两个过滤器可用于评估消息内容。例如,如果消息的总订单项 = 300 美元,则两个过滤器都会根据内容评估 true,但在这种情况下,我们希望将此消息路由到 ServiceA,因此我们必须赋予 Filter1 优先级。

    这有帮助吗?

    【讨论】:

    • 谢谢。所以也可以,如果将 B 更改为: 优先级为 0 的消息过滤器,它将所有消息转发到服务 A;和 D 到:优先级为 100 的消息过滤器,它将总价值超过 500 美元的消息转发到服务 B。
    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 2011-09-29
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多