WCF回调如何通过HTTP工作?

Joe*_*oeS 7 wcf http

据我所知,在HTTP中,客户端连接到服务器并请求数据.服务器无法呼叫客户端.如果是这种情况,那么WCF回调如何工作?

谢谢,

Jer*_*Gee 6

与HTTP传输一起使用时,服务器调用客户端.为了使其工作,客户端必须位于公共端点上,因此需要对防火墙和有什么需要进行适当配置.

来自http://msdn.microsoft.com/en-us/magazine/cc163537.aspx:

由于其无连接性,HTTP不能用于回调,因此您不能使用BasicHttpBinding或WSHttpBinding上的回调.Windows Communication Foundation为NetTcpBinding和NetNamedPipeBinding提供回调支持,因为底层传输是双向的.为了支持HTTP上的回调,Windows Communication Foundation提供了WSDualHttpBinding,它实际上设置了两个HTTP通道:一个用于从客户端到服务的调用,一个用于从服务到客户端的调用.

并从WSDualHttpBinding的参考资料 http://msdn.microsoft.com/en-us/library/system.servicemodel.wsdualhttpbinding.aspx:

此绑定要求客户端具有公共URI,该URI为服务提供回调端点.这是由ClientBaseAddress提供的.双重绑定将客户端的IP地址暴露给服务.客户端应使用安全性来确保它只连接到它信任的服务.