在企业场景中通过代理使用TCP隧道进行双工WCF连接

在企业场景中通过代理使用TCP隧道进行双工WCF连接,wcf,nettcpbinding,duplex,Wcf,Nettcpbinding,Duplex,我们正在为尚未发布的企业级LOB应用程序中的一项功能使用双工合约,该应用程序利用了使用WPF构建的厚客户端和使用WCF构建的服务器 到目前为止,在开发过程中,我们一直在使用net.tcp绑定以获得最佳性能。现在,部署即将开始,通过web代理访问internet等问题逐渐暴露,net.tcp不再适用 我已经开始使用wsHttp和wsDualHttp,但同时意识到通过web代理(以及NAT遍历)的双工连接实际上是不可能的 现在我在想:为什么我不能建立一个tcp隧道(使用支持web代理的专有软件,使用

我们正在为尚未发布的企业级LOB应用程序中的一项功能使用双工合约,该应用程序利用了使用WPF构建的厚客户端和使用WCF构建的服务器

到目前为止,在开发过程中,我们一直在使用net.tcp绑定以获得最佳性能。现在,部署即将开始,通过web代理访问internet等问题逐渐暴露,net.tcp不再适用

我已经开始使用wsHttp和wsDualHttp,但同时意识到通过web代理(以及NAT遍历)的双工连接实际上是不可能的


现在我在想:为什么我不能建立一个tcp隧道(使用支持web代理的专有软件,使用HTTP连接),并在代理支持、速度和安全性这两个方面都做到最好?

这似乎是一个共同的要求

你的选择并不广泛。如果微软的服务总线能满足您的需求,它可能是您最好的选择。其他选择包括:

  • VPN:非常不言自明
  • SSH:SSH内置了隧道功能。如果只有少量连接,则可以使用现成的SSH客户机和服务器,但如果连接数量较大,则很难确保它们都保持可靠连接。有几家公司生产您可以构建的SSH组件(它们不能满足我们的需要),但它们更倾向于SSH的远程执行使用,而不是隧道
  • DIY TCP隧道,这是一项艰巨的工作。不是不可能,而是一项艰巨的任务。并且需要大量的测试来确保你的测试是正确的

至于在隧道连接上运行WCF,如果您选择该路线,您将不会有任何问题。所有的绑定和功能都可以正常工作——回调、可靠性、消息安全性、传输安全性、事务,所有这些都可以正常工作。

感谢您的回答。你也尝试过WindowsAzure的东西吗?我们进行了调查,但没有这样做,所以我的经验有限。