通过路由服务进行通信
HelloRoutingService 示例演示 Windows Communication Foundation (WCF) 路由服务。 路由服务是一个 WCF 组件,使用该组件可方便地在应用程序中包含基于内容的路由器。 此示例采用标准的 WCF 计算器示例,使用路由服务进行通信。 在此示例中,计算器客户端配置为将消息发送到由路由器公开的一个终结点。 路由服务配置为接受发送给它的所有消息,然后将这些消息转发至与计算器服务对应的终结点。 因此,从客户端发送的消息将由路由器接收,并重新路由到实际的计算器服务。 来自计算器服务的消息将发回到路由器,后者又将这些消息传回到计算器客户端。
使用此示例
使用 Visual Studio 打开 HelloRoutingService.sln。
按 F5 或 Ctrl+Shift+B。
备注
如果按 F5,则计算器客户端将自动启动。 如果按 Ctrl+Shift+B(生成),则必须自己启动以下应用程序。
- 计算器客户端 (./CalculatorClient/bin/client.exe)
- 计算器服务 (./CalculatorService/bin/service.exe)
- 路由服务 (./RoutingService/bin/RoutingService.exe)
按 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 希望提高其服务的命名、寻址、配置和安全方面的灵活性。 为此,他们将基本消息泵放在其服务的前面,作为面向公共的终结点。 这样,他们就可以将附加安全性放在其实际服务的前面,以便以后更轻松地实现扩展的解决方案或服务版本控制。