【问题标题】:Expose a WCF Service through a Named Pipes binding通过命名管道绑定公开 WCF 服务
【发布时间】:2010-09-16 03:21:26
【问题描述】:

简介:

几天前,我成功实现了托管在 Windows 服务中的 WCF 服务。 StackOverflow 的社区通过the WSDL exposure here 帮助了我。我再次感谢你。但是最近我发现这次该服务的另一个潜在客户端与该服务位于同一台机器上,这使我认为我应该使用 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. 我应该如何将客户端应用程序中的服务引用添加到命名管道端点?

【问题讨论】:

    标签: wcf named-pipes service-discovery netnamedpipebinding


    【解决方案1】:

    你的端点看起来不错,虽然我很好奇 localBinding 中有什么...

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

    祝你好运!

    【讨论】:

    • @James Bender :我明天(上午 01:11)将查看生产环境中的配置,我将尝试使用 mex 端点进行发现/添加服务参考。我将发布有关配置文件和其他文件的更多信息。感谢您的支持;)
    • 没问题。我仍然会使用 SVCUTIL 来生成您的部署代理。我已经......“添加服务参考......”的“不可预测”的结果如果你想看看它在我的博客上(www.jamescbender.com)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      相关资源
      最近更新 更多