netTcpBinding或wsHttpBinding

时间:2009-11-10 16:02:38

标签: wcf wcf-binding nettcpbinding wshttpbinding

我有一个托管为Windows服务的WCF服务,客户端是一个使用WCF服务方法的ASP.Net应用程序。

在实施安全性的过程中,我对netTcpBinding / wsHttpBinding中适合我的情况感到困惑。

很可能场景中的所有应用程序(WCF服务,Windows服务,ASP.Net网站)都将位于我们办公室的不同服务器上,因此位于Intranet中。用户可以通过互联网访问ASP.Net网站。

虽然,我总是可以在这里使用wsHttpBinding,在我的情况下是否适合使用netTcpBinding设置服务端点?

6 个答案:

答案 0 :(得分:13)

选中此项以比较所有不同的内置绑定:

Configuring System-Provided Bindings - MSDN

就您的情况而言,只要是联系WCF服务的Web服务器而您不需要为该服务的任何外部使用者提供端点...... netTcpBinding应该可以胜任工作

答案 1 :(得分:10)

如果您愿意,可以通过多个绑定公开您的服务,这样您就可以实际使用这两种绑定。

但是,如果您同时控制客户端和服务并且它们都使用WCF,则netTcpBinding要快得多。除非你在这两者之间有防火墙,否则我会选择它。

答案 2 :(得分:6)

如果您愿意交换性能的互操作性,并且知道如果您对结果不满意就可以轻松取消交易(这是更改配置值的问题),请使用netTcpBinding代替wsHttpBinding

答案 3 :(得分:6)

由于您的WCF服务将由位于办公室(INTRANET)的应用程序访问,我将使用 netTcpBinding

Intranet方案中,建议您使用 netTcpBinding ,除非您有特定要求使用其他绑定,例如wsHttpBinding。默认情况下,netTcpBinding使用二进制编码传输安全性,从而提供更好的性能。

以下网址将有助于获取更多信息

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

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

答案 4 :(得分:1)

它与功能,兼容性,安全性和性能有关

它可以归结为:如果您的客户端支持WCF并且在您的Intranet上,请使用netTcp。

如果需要支持“较旧”(asmx)或“兼容”(java / rails / pythone)客户端(可能在互联网上),请使用basicHtpp。

答案 5 :(得分:0)

由于您的WCF服务是netTcpBinding的Windows服务+1。在IIS上托管netTcpBinding很困难。