各种WCF绑定用于通信的特定端口是什么?

时间:2012-03-11 14:58:05

标签: wcf web-services wcf-binding firewall

我在各种书籍/文章中读到,一些绑定,例如netTcpBindingnetMsmqBinding无法在onternet上实现,因为它们用于通信的端口被大多数防火墙阻止。这来自Juval Lovy编程WCF服务的第518页:

  

MSMQ绑定旨在用于Intranet。这不可以   默认情况下通过防火墙。

但与此同时,我看到许多文章/教程正是如此,通过互联网实现netTcpBindingnetMsmqBinding通信的服务。我甚至最近设置了netMsmqBinding的WCF服务,并且从初始测试开始(尽管我们尚未在生产环境中测试过该服务)它似乎在互联网上运行得很好,尽管经过许多令人沮丧的尝试和无数次调整。无论如何,我的问题是,是否有人能够告诉我不同​​类型的绑定使用的端口号,以及是否可以安全地假设这些端口默认在防火墙上打开。另外建议如何通过互联网使用netTcpBinding,我正在尝试托管另一项服务,该服务将由互联网上的客户端调用,我希望在给定时间内有100多个客户端使用该服务,因此性能对我来说至关重要(这就是为什么我热衷于互联网上的netTcpBinding而不是wsHttpBinding)。

2 个答案:

答案 0 :(得分:3)

netTcpBinding的默认值是TCP / 808。

有一个Microsoft Howto描述了MSMQ在各种情况下使用的端口。

受防火墙保护的任何服务都需要在防火墙中打开正确的端口。只要端口是开放的,任何东西都可以在互联网上运行。

话虽如此,有些端口永远不应该打开防火墙。对于通用RPC端口(139,445)的Windows环境,它允许访问Windows文件共享,RPC和远程管理。如果您打开这些服务,则无法限制只访问其中一项服务,任何能够访问这些端口的人都可以访问所有核心Windows服务。

答案 1 :(得分:1)

不幸的是,通用TCP没有默认端口,因此您不应期望默认情况下打开任何防火墙。唯一的默认端口是针对众所周知的基于TCP的协议(例如,对于SQL Server,HTTP / S等)。如果您可以确保您的客户端和服务器具有正确的端口打开,您应该能够通过Internet可靠地工作。如果您无法控制服务器或客户端,则可能会遇到此方法的问题。

如果您正在寻找表现,那么您可以考虑FastInfoset components from Noemax。它们可以通过压缩和更快的编码显着加速HTTP WCF服务。它们还为非WCF客户端提供了合理的互操作性。我发现在我的情况下,我们能够接近TCP性能。