net.pipe与net.tcp对比http绑定

时间:2009-04-19 16:46:50

标签: .net wcf wcf-binding

我是WCF的新手,想知道以下每个绑定的差异/优势/限制等:

net.pipe
net.tcp
http

支持关于何时使用每个绑定和其他示例的方案将不胜感激。

3 个答案:

答案 0 :(得分:65)

虽然不是很适合提供特定的用法示例,但这里有一个来自MSDN的链接,其中列出了绑定的所有功能。

http://msdn.microsoft.com/en-us/library/ms730879.aspx

这是一个体面的流程图,可以帮助他们之间进行选择。

Flowchart

来源:http://bloggingabout.net/blogs/dennis/archive/2006/12/01/WCF-Binding-decision-chart.aspx

这是我过去用过的一篇很好的整篇文章。

http://mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx(如果该链接不再适合您,则在该方法机器中为here)。

答案 1 :(得分:52)

net.pipe,快速且安全,因为无法从网络访问您的Web服务(通常,您将使用net.pipe轻松地与Windows服务进行交互)。

http,您将使用它来实现互操作性,如果您的Web服务没有通过HTTP,则Silverlight或Flash无法使用它(因为浏览器过滤非HTTP数据包,就像防火墙一样)。

net.tcp,有点快,因为您的soap消息没有包含在HTTP请求中,但是您无法使用RIA技术调用您的Web服务,并且某些防火墙会丢弃您的消息。

答案 2 :(得分:14)

Windows Communication Foundation(WCF)是用于构建处理XML消息的服务的框架。 WCF允许您使用不同的传输协议(例如HTTP,TCP和MSMQ)传输消息并使用不同的XML表示形式(例如文本,二进制或MTOM,这通常被称为WCF中的消息编码。

如果要在一台计算机上托管多个WCF服务并希望它们使用共享内存进行通信,请使用命名管道=> net.pipe,然后使用tcp与不同计算机上的WCF服务进行通信。

nettcp绑定的配置侧重于创建一个在Windows环境中性能更好的通道堆栈,为您提供了替换各种COM +和.NET远程投资的绝佳选择。

BasicHttpBinding专为互操作性至关重要的场景而设计。因此,BasicHttpBinding使用HTTP进行传输,使用文本进行消息编码。