每种传输方式的优势
本节描述了选择其中任何一种的主要原因
三种主要运输方式,包括详细的决策图
在其中进行选择。
何时使用 HTTP 传输
HTTP 是客户端和服务器之间的请求/响应协议。这
最常见的应用程序由 Web 浏览器客户端组成,这些客户端
与 Web 服务器通信。客户端向服务器发送请求,
它侦听客户端请求消息。当服务器收到一个
请求时,它会返回一个响应,其中包含请求的状态
要求。如果成功,可选数据,如网页,错误
消息,或返回其他信息。有关更多信息
HTTP 协议,请参阅 HTTP - 超文本传输协议。
HTTP 协议不是基于连接的——一旦发送响应,
不维持任何状态。为了处理多页事务,
应用程序必须保持任何必要的状态。
在 WCF 中,HTTP 传输绑定针对互操作性进行了优化
与旧的非 WCF 系统。如果所有通信方都使用
WCF,基于 TCP 或基于命名管道的绑定更快。更多
有关信息,请参阅 NetTcpBinding 和 NetNamedPipeBinding。
何时使用 TCP 传输
TCP 是一种基于连接、面向流的传送服务,具有
端到端的错误检测和纠正。基于连接意味着
在交换之前建立主机之间的通信会话
数据。主机是 TCP/IP 网络上由逻辑
IP 地址。
TCP 提供可靠的数据传输和易用性。具体来说,TCP
通知发送方数据包已送达,保证数据包在
以与发送它们相同的顺序交付,重新传输丢失
包,并确保数据包不重复。注意
这种可靠的传递适用于两个 TCP/IP 节点之间,而不是
与 WS-ReliableMessaging 相同,适用于
端点,无论它们可能包含多少中间节点。
WCF TCP 传输针对两端的场景进行了优化
通信使用 WCF。此绑定是最快的 WCF
用于涉及不同通信的场景的绑定
机器。消息交换使用
BinaryMessageEncodingBindingElement 用于优化消息传输。
TCP提供双工通信,因此可以用来实现
双工合约,即使客户端在网络地址后面
翻译(NAT)。
何时使用命名管道传输
命名管道是 Windows 操作系统内核中的一个对象,例如
作为进程可以使用的共享内存的一部分
沟通。命名管道有一个名字,可以用于单向或
单台机器上的进程之间的双工通信。
当不同 WCF 应用程序之间需要通信时
单台计算机,并且您想阻止来自
另一台机器,然后使用命名管道传输。额外的
限制是从 Windows 远程桌面运行的进程可能
被限制在同一个 Windows 远程桌面会话中,除非他们
拥有提升的权限。