通过路由服务进行通信

此示例演示 Windows Communication Foundation (WCF) 路由服务。路由服务是一个 WCF 组件,使用它可方便地在应用程序中包含基于内容的路由器。此示例采用标准的 WCF 计算器示例,用于使用路由服务进行通信。在此示例中,计算器客户端配置为将消息发送到由路由器公开的一个终结点。路由服务配置为接受发送给它的所有消息,然后将这些消息转发至与计算器服务对应的终结点。因此,从客户端发送的消息将由路由器接收,并重新路由到实际的计算器服务。来自计算器服务的消息将发回到路由器,后者又将这些消息传回到计算器客户端。

使用此示例

  1. 使用 Visual Studio 2010 打开 HelloRoutingService.sln。

  2. 按 F5 或 F6。

    Dd795218.note(zh-cn,VS.100).gif注意:
    如果按 F5,则计算器客户端将自动启动。如果按 F6(生成),则您必须自己启动以下应用程序。

    1. 计算器客户端 (./CalculatorClient/bin/client.exe)

    2. 计算器服务 (./CalculatorService/bin/service.exe)

    3. 路由服务 (./RoutingService/bin/RoutingService.exe)

  3. 按 Enter 启动客户端。

    您应看到以下输出:

    Add(100,15.99) = 115.99

    Subtract(145,76.54) = 68.46

    Multiply(9,81.25) = 731.25

    Divide(22,7) = 3.14285714285714

可通过代码或 App.Config 进行配置

所提供的示例配置为使用 App.config 文件来定义路由器行为。也可将 App.config 文件的名称更改为无法识别的其他名称,并将对 ConfigureRouterViaCode() 的方法调用取消注释。以上任一方法都可产生相同的路由器行为。

方案

此示例演示作为基本消息泵的路由器。路由服务用作透明的代理节点,该节点配置为将消息直接传递到目标终结点的预配置集。

实际方案

Contoso 希望提高其服务的命名、寻址、配置和安全方面的灵活性。为此,他们将基本消息泵放在其服务的前面,作为面向公共的终结点。这样,他们就可以将附加安全性放在其实际服务的前面,以便以后更轻松地实现扩展的解决方案或服务版本控制。

Dd795218.Important(zh-cn,VS.100).gif 注意:
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:

<安装驱动器>:\WF_WCF_Samples

如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录。

<安装驱动器>:\WF_WCF_Samples\WCF\Basic\RoutingServices\HelloRoutingService