我有一个WCF服务,可以通过互联网上基于jQuery的web应用程序以及本地Intranet中的WPF应用程序来使用。
我应该选择http或TCP协议还是应该使用http协议为Intranet制作两个类似的Internet协议和TCP协议服务。
答案 0 :(得分:2)
老实说,我建议两者兼顾,这也是我所做的。我认为公开服务'x'并且能够通过'y'或'z'连接是很好的,这取决于消费方的需求。
当我第一次决定这样做时,我认为为同一服务公开多种绑定类型将是微不足道的。毕竟WCF是关于选项的,所以为什么不公开你想要的几个选项,对吧?棘手的部分是你不能拥有(2)具有不同绑定的不同服务(比如HTTP和netTCP)都使用相同的服务契约。尝试托管此类服务时会出错。
我想出了一个简单的抽象,使用额外的接口来实现这一点。现在,你将有(2)单独的合同来实现,每个绑定类型1,但仍然只有一个不受约束的代码库。看一下我写的帖子,用一个代码示例解释这个:
Exposing Multiple Binding Types For The Same Service Class In WCF
答案 1 :(得分:1)
我建议使用HTTP,它适用于互联网和内联网。 此外,为了在两者上公开服务,您不需要创建2个服务,只需在配置中创建正确的绑定,然后在两个协议上都会公开相同的服务。
答案 2 :(得分:1)
我不是WCF的专家,但这里是我的两分钱:
WCF绑定中的只是配置问题,这意味着WCF端点的web.config和WPF客户端的app.config。
服务器web.config中只需要一个服务,最终需要多个绑定/端点
客户端应用程序将根据需要使用两个端点之一和客户端绑定/协议进行连接,而无需您拥有两个服务或进行任何特定更改。
内联网netTCPbinding
中的可能是最快的选择,因为它传输二进制数据,在Internet httpBinding
中运行良好;请注意,您也可以在Intranet中使用httpBinding
而没有任何问题,如果它会慢得多或完全等同于netTcp绑定,还要根据您的用户转换类型/内容进行验证。