WCF回调操作简单的说就是由服务端来调用客户端的方法,回调时原先的服务端和客户端将发生对调,服务端成为客户端,客户端成为服务端。
ServiceRequest:客户端向服务端发出调用,在调用的过程中会把回调实例的引用一起发送到服务端。
CallbackRequest:服务端从上一步的请求中取得对回调实例的引用,通过该回调实例向客户端发出的回调请求。
CallbackResponse:客户端执行完回调后向服务端返回的响应,如果回调契约中的方法契约被定义为IsOnWay的话,这一步不会发生。
ServiceResponse:服务端方法执行完后向客户端返回信息(方法的返回值等)。
1、WCF回调的必要条件:并不是所有的绑定都支持回调操作,只有具有双向通信能力的绑定才可以使用回调。比如HTTP是与连接无关的因此不能用于回调。这就说明我们不能使用BasicHttpBinding或WSHttpBinding进行回调。WCF中NetTcpBinding和NetNamedPipeBinding支持回调,因为从本质上讲TCP和IPC协议支持双向通信。WCF中wsDualHttpBinding也是支持回调的因为它实际上是设置了两个HTTP通道
2、定义回调契约
[ServiceContract(CallbackContract = typeof(ISomeCallbackContract))]