WCF 4.0中的动态发现服务WS-Discovery
WCF 3/3.5 中,当我们要调用一个服务时,必须事先知道该服务的地址,然后通过服务代理用双方约定好的契约与远程的服务进行交互。现在,WCF 4.0中提供了发现服务的支持,当我们再想调用一个服务时,没必要去知道该服务的具体地址,WCF 4.0实现了OASIS的WS-Discovery标准,相关的类定义在System.ServiceModel.Discovery命名空间中。这是一个单独的程序集,所以需要添加对它的引用。只需要利用 System.ServiceModel.Discovery 命名空间下的相关类就可以实现两种方式的动态发现服务:
Ad hoc Mode:简单理解,就是服务启动时就向网络广播Hello消息,调用方收到后进行回应建立通讯的模式。
Managed Mode:简单理解,就是所有服务事先在一个叫 Discovery Proxy 的地方登记,然后所有调用方发送查找请求给 Discovery Proxy 来查找并调用相关服务的模式。
WCF 4.0中要动态发现服务,用 Ad hoc Mode 实现起来还是比较简单的。对于Managed Mode,就需要继承 System.ServiceModel.Discovery.DiscoveryProxy 抽象类去实现自己的 Discovery Proxy 了。
欢迎大家扫描下面二维码成为我的客户,扶你上云