WCF回调如何通过HTTP工作?

时间:2011-11-01 09:46:59

标签: wcf http

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

谢谢,

2 个答案:

答案 0 :(得分: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地址暴露给服务。客户端应使用安全性来确保它只连接到它信任的服务。

答案 1 :(得分:1)

WCF Duplex HTTP客户端(例如,当使用wsDualHttpBinding时)也会启动服务器,以便在回拨“真实”服务器时收听请求。

因此,对于NAT来说,这不会起作用。