我有一个托管为Windows服务的WCF服务,客户端是一个使用WCF服务方法的ASP.Net应用程序。
在实施安全性的过程中,我很困惑netTcpBinding
/ wsHttpBinding
中的哪一个适合我的情况。
很可能场景中的所有应用程序(WCF服务,Windows服务,ASP.Net网站)都将位于我们办公室的不同服务器上,因此位于Intranet中。用户可以通过Internet访问ASP.Net网站。
虽然,我总是可以在这里使用wsHttpBinding,在我的情况下是否适合使用netTcpBinding
设置服务端点?
检查这个以比较所有不同的内置绑定:
Configuring System-Provided Bindings - MSDN
至于你的情况,只要它是联系WCF服务的Web服务器,你不需要为服务的任何外部消费者提供端点...... netTcpBinding
应该胜任这项工作。
如果您愿意,可以通过多个绑定公开您的服务,因此您实际上可以同时使用这两种绑定。
但是,如果您同时控制客户端和服务并且它们都使用WCF,则netTcpBinding要快得多。除非你在这两者之间有防火墙,否则我会选择它。
使用netTcpBinding
而不是wsHttpBinding
如果你愿意交换性能的互操作性,知道如果你对结果不满意就可以轻松取消交易(这是改变配置值的问题)。
由于您的WCF服务将由位于办公室(INTRANET)的应用程序访问,因此我将使用netTcpBinding。
在Intranet方案中,建议您使用netTcpBinding,除非您有特定要求使用其他绑定,例如wsHttpBinding。默认情况下,netTcpBinding使用二进制编码和传输安全性,从而提供更好的性能。
以下URLS将有助于获取更多信息
由于您的WCF服务是netTcpBinding的Windows服务+1。在IIS上托管netTcpBinding很困难。