使用VPN或者ER服务建立云服务和本地服务网络通道来搭建混合应用的方式,需要网络设备的配合和比较复杂的网络配置,所以不是特别的方便。如果是不希望对本地网络环境做修改,而只是服务层面的混合,那么可以使用一个更方便的服务 – Azure中继服务。基于Azure中继服务访问本地服务,客户端不需要与本地服务建立直接连接,也不需要了解服务所在的位置,并且本地服务无需在防火墙上打开任何入站端口。
Azure中继服务支持传统的单向消息传送、请求/响应消息传送和对等消息传送。它还支持 Internet 范围的事件分发,以实现发布-订阅方案和双向套接字通信,从而提高点到点通信效率。在中继消息传送模式中,本地服务会通过出站端口连接至中继服务,并为绑定至特定会合地址的通信创建一个双向套接字。然后,客户端可以通过将消息发送到抵达会合地址的中继服务来与本地服务通信。
目前Azure提供两种中继服务,WCF(Windows Communication Foundation)中继和混合连接。其中WCF中继是传统的服务,适合于基于WCF的本地服务。(关于WCF请参阅 WCF 官方文档)。而混合连接使用开放标准Web套接字,可实现多平台方案,适用性更广。
本文介绍如何使用WCF中继来构建混合应用。
WCF中继
WCF中继允许你向公有云公开位于企业网络内的WCF服务,而无需打开防火墙连接,也无需对企业网络基础结构进行彻底的更改。而且它还允许你安全的控制谁可以访问这些服务。另外对你原来的WCF项目所需要做的改动也是很小的。