2011-10-18 48 views

回答

1

我不是WCF的专家,但我在这里的两分钱:

在WCF绑定只能配置的问题,这意味着你的WPF客户端为WCF终点的web.config和app.config中。

你只需要一个服务,最终多个绑定/端点服务器的web.config

客户端应用程序将使用两个端点的一个和客户端绑定/协议的需要,而无需任何您连接有两项服务或做出任何具体的改变。

在内联网netTCPbinding可能是最快的选择,因为它传输二进制数据,因特网httpBinding应该工作得很好;请注意,您也可以在Intranet中使用httpBinding而不会出现问题,并且它可能会比netTcp绑定的速度慢得多或完全等效,这一切都需要根据您的使用传输器类型/内容来证明。

1

我会建议使用HTTP,它将适用于互联网以及内联网。 此外,为了在两个服务上公开服务,您不需要创建2个服务,只需在配置中创建适当的绑定,然后相同的服务就会暴露在两个协议上。

2

老实说,我建议做这两个,这也是我所做的。我认为公开服务'x'并且能够根据消费者需求通过'y'或'z'连接是很好的。

当我第一次决定这样做时,我认为为相同服务公开多个绑定类型将是微不足道的。毕竟WCF是关于选项的,所以为什么不公开一些你想要的选项,对吧?棘手的部分是你不能拥有(2)具有不同绑定(比如说HTTP和netTCP)的不同服务都使用同一个服务合约。尝试托管这样的服务时会出现错误。

我想出了一个简单的抽象,使用额外的接口来允许这件事。现在,您将拥有(2)单独的合同来执行,每个绑定类型1个,但底下仍然只有一个不重要的代码库。看看我写的一篇文章,用代码示例解释了这一点:

Exposing Multiple Binding Types For The Same Service Class In WCF