我有一个 WCF 服务,可以通过互联网中基于 jQuery 的 Web 应用程序以及本地 Intranet 中的 WPF 应用程序使用该服务。
我应该选择 http 还是 TCP 协议(protocol),或者我应该使用用于互联网的 http 协议(protocol)和用于 Intranet 的 TCP 协议(protocol)创建两个类似的服务。
最佳答案
老实说,我建议两者都做,这也是我所做的。我认为公开服务“x”并能够根据消费方的需求通过“y”或“z”进行连接是很好的做法。
当我第一次决定这样做时,我认为为同一服务公开多个绑定(bind)类型是微不足道的。毕竟 WCF 就是关于选项的,所以为什么不公开一些您想要的选项,对吧?棘手的部分是,您不能让 (2) 具有不同绑定(bind)(例如 HTTP 和 netTCP)的不同服务都使用相同的服务合约。尝试托管这样的服务时,您将收到错误消息。
我想出了一个简单的抽象,使用一个额外的接口(interface)来允许这件事。现在,您将有 (2) 个单独的合约要实现,每个绑定(bind)类型 1 个,但下面仍然只有一个实现的代码库。看一下我写的一篇文章,其中通过代码示例进一步解释了这一点:
Exposing Multiple Binding Types For The Same Service Class In WCF
关于.net - WCF 服务 TCP/Ip 与 Http 协议(protocol)的 Internet 与 Intranet 服务消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7805503/