1

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

Windows Communication Foundation (WCF) 解决方案使用两个服务来管理购物车。服务 A 处理包含总金额在 0 美元到 500 美元之间的行项目的消息。服务 B 处理包含总金额超过 500 美元的行项目的消息。所有消息对业务逻辑都同等重要。您需要使用 WCF 路由将传入消息路由到适当的服务。您应该将哪两个消息过滤器添加到路由器?(每个正确答案代表解决方案的一部分。选择两个。)

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

答案是 A 和 C。

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

4

1 回答 1

3

它们不是对称的。

甲&丙:

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

B&D

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

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

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

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

这有帮助吗?

于 2012-07-03T08:01:33.730 回答