0

有人可以帮助 netTcpBinding 与 BasicHttpBinding 之间的主要区别是什么吗?

在我当前的项目中,我们将 BasicHttpBinding 转换为 netTcpBinding 并出现性能问题,即使 BizTalk 中的值设置为 1:00:00,它也会开始超时。我们不知道为什么?

4

1 回答 1

5

netTcp 和 basicHttp 绑定使用完全不同的传输机制:TCP 而不是 HTTP。理论上,TCP 的二进制编码应该比 HTTP 的文本编码更快。

正如这里所讨论的,由于额外的安全开销和/或争用,netTcpBinding 可能没有那么快:

默认情况下,NetTcpBinding 启用某些级别的安全性,这会增加 WCF 运行时的消息处理管道的开销。此外,NetTcpBinding 还启用了端口共享功能,这意味着您的 WCF 主机不会独占访问该端口,而是可能与其他应用程序共享它。如果您在 Windows Server 2008 或 Windows 7 环境中托管您的服务,这可能会变得非常有趣,因为有许多 Windows 应用程序依赖于 NetTcpBinding 端点。最后,ListenBacklog 和 MaxConnections 设置的默认值设置为 10,这对于大量客户端来说远非最佳值。

另请注意,如果没有有关通信的哪一部分超时的更多信息,很难说出确切的原因。请记住,事务的每一方对于打开、关闭和发送或接收都有不同的超时设置。

于 2011-12-19T15:14:39.843 回答