在什么情况下在同一台机器上运行WCF客户端和服务器是有意义的?

时间:2010-05-25 20:38:10

标签: wcf netnamedpipebinding

在Michele Bustamante的学习WCF 中,有一节介绍了一种名为 NetNamedPipes 绑定的绑定。该书说这个绑定只能用于将从同一台机器专门调用的WCF服务。

在什么情况下使用它有意义?通常,我会在不使用WCF的情况下编写异步代码...为什么Microsoft会为只能在同一台机器上运行的WCF提供一些东西?

2 个答案:

答案 0 :(得分:4)

从另一个方向看。构建服务后,您可以运行各种绑定配置。如果它是远程计算机,则可以使用HTTP或TCP绑定。或者,该服务恰好在同一个盒子上运行,您有这些选项和命名管道选项。命名管道只是在本地运行时提供的另一个选项,但是如果您正在运行远程,则应该能够切换到不同的绑定。

Yu可以从同一个盒子上的所有内容开始,因为您拥有较少的流量,并使用命名管道,因为它是服务的最短路径。然后,如果需要加载,您可以将服务移动到另一个框,然后将其更改为使用TCP或HTTP。

答案 1 :(得分:2)

您可能没有只暴露NetNamedPipe端点的服务 - 这没有多大意义。但是,如果您在服务器上运行WCF服务,则使用通常的绑定将服务端点暴露给世界,并且您需要例如管理或管理控制台或类似的东西,在同一台机器上运行,使用NetNamedPipe绑定是有意义的,因为它是最快的。

我了解到的另一种可能的情况是拥有错误收集服务 - 发生的任何错误或异常都会发送到要记录的服务。再说一次:该服务可能会暴露多种类型的端点,但如果您在同一台服务器上运行其他服务,则使用NetNamedPipe绑定来连接这两种服务非常有意义。

我认为你在WCF时代不会使用NetNamedPipe绑定很多 - 但在某些情况下它肯定有意义并且在这种特殊情况下非常有用。