11

介绍:

几天前,我成功实现了托管在 Windows 服务中的 WCF 服务。StackOverflow 的社区在这里帮助我了解了 WSDL。我再次感谢你。但是最近我发现这次服务的另一个潜在客户端与该服务位于同一台机器上,这使我认为我应该使用 namedPipesBinding 添加另一个端点。

就我而言,命名管道似乎是机器内通信的最佳解决方案。如果这是错误的,请纠正我。

问题:

我需要为同一服务/合同公开另一个端点,但这次使用 netNamedPipeBinding。但是我真的不明白如何才能添加来自客户端的服务引用。添加后愚蠢

<endpoint address="net.pipe://localhost/OfficeService"
          binding="netNamedPipeBinding"
          contract="netBridge.Development.OfficeService.IWordService"
          bindingConfiguration="localBinding" />

我试图在位于同一台机器上的 Windows 窗体应用程序中添加服务引用,键入 net.pipe://.... url。它没有用。我必须提到我之前已经删除了 mex(元数据交换)端点,因为我认为没有必要。

  1. 命名管道端点绑定发现是否需要此 mex 端点?
  2. 我应该如何将客户端应用程序中的服务引用添加到命名管道端点?
4

2 回答 2

13

您的端点看起来不错,尽管我很好奇 localBinding 中的内容......

听起来最简单的选择就是更改命名管道客户端上的端点配置以匹配您的服务端点。只要它是客户端配置文件中的唯一端点,客户端就不应该关心它。否则,您必须向端点添加名称,并在您新建代理对象时让客户端选择一个特定的名称。

祝你好运!

于 2008-10-08T21:27:08.647 回答
6

mex 端点在开发过程中是必需的,因为它提供了构建 wsdl 的 http 位置。wsdl 向客户端描述如何通过命名管道、TCP/IP 或其他任何方式与服务器通信。一旦客户端应用程序构建了命名管道绑定的代理并设置了配置,就不再需要 mex 端点。因此,如果需要,可以在通过环境部署之前删除 mex 端点。

于 2009-06-19T12:06:56.217 回答