繁体   English   中英

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

[英]What specific ports do various WCF bindings use for communication?

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

MSMQ绑定旨在用于Intranet。 默认情况下,它无法通过防火墙。

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

netTcpBinding的默认值是TCP / 808。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM