【问题标题】:Things to consider while calling one WCF service from another从另一个 WCF 服务调用时要考虑的事项
【发布时间】:2011-10-18 02:25:35
【问题描述】:

我们正在将一组 WSE 服务迁移到 WCF 平台。

新的 WCF 服务通过安全的 HTTP 调用。 (https)

我想从另一个 WCF 服务调用一个操作合同。这两个服务大多托管在同一个 IIS 中,但它们可以位于不同的 IIS 服务器上。

  1. 在这种情况下,我是否需要处理一些事情(我目前显然不知道)?
  2. 这种情况下有什么特殊的调用机制吗?
  3. 同步调用和异步调用时调用机制是否发生变化?
  4. 您能否推荐一些在这种情况下现成可用的绑定类型?

【问题讨论】:

    标签: wcf web-services asmx wcf-binding


    【解决方案1】:

    不应该仅仅因为一个 WCF 服务方法调用另一个 WCF 服务就需要什么特别的东西。 WCF 服务不会“关心”其他应用程序类型调用它的方法,只要它们使用正确的服务协定、数据协定、端点和绑定设置。

    只要确保两个服务方法都及时返回,并且不会导致执行长时间阻塞。

    【讨论】:

      【解决方案2】:

      1.) 如果服务在同一个盒子上,请使用命名管道,除非您有任何令人信服的理由不这样做,否则可以相互通信。虽然 WCF 本身并不关心你在做什么,只要地址、绑定和合同都匹配(看看我在那里做了什么?),而 .NET 在建立网络连接时会。你使用的越少越好。 (详情请参阅http://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx

      2.) 如 #1 所述,如果他们在同一个盒子上交谈,请使用命名管道,除非有充分的理由不这样做。

      3.) 您能否详细说明您的意思或您打算做什么?其中很多都是为您构建的,因此假设您熟悉实现异步方法和使用异步回调,简短的回答是肯定的,它与同步调用操作不同,但这是意料之中的。还是您的意思是 IsOneWay = true?如果是这种情况,调用机制是相同的,但可能存在许多其他问题(例如故障)

      4.) 命名管道在同一个盒子上,BasicHttp 否则(除非您需要 WS 的任何附加功能)。

      【讨论】:

      • +1 为您解答。你的意思是我需要在Web.Config 文件中添加一个端点吗?并使用代码中的那个端点?怎么办?我对 WCF 很陌生。
      • 好吧,如果你没有端点,你就不会和你的服务对话 :) 所以需要一个端点,是的,把它放在你的 web.config 文件中。
      • 哦。我的意思是 Web.Config 是正确的文件,或者其他一些配置文件可以出现在图片中。在代理类的情况下,我们在代理类上获得Url 属性,我们可以指向特定的服务端点。但是,我如何从其他服务指向特定端点,因为我没有任何东西可以将 URL 设置为端点。所以我错过了一些东西。我正在为此读书,但如果您能提供信息,那就太好了。
      【解决方案3】:

      但它们可以在单独的 IIS 服务器上

      在这种情况下,您要么不能使用 Windows 身份验证(如果您正在使用它),要么您必须在域上设置一些特殊的代理内容才能使其正常工作。 Windows 身份验证不会在不同服务器之间“跳跃”。 Here's some info on that,有很多关于这个主题的阅读。

      如果它们位于同一台服务器上,或者您没有使用 Windows 身份验证,那么这应该不是问题。

      调用是同步的和同步的时候调用机制会改变吗 异步?

      应该没关系,在服务端都一样。我会说,如果客户端调用 X 并且 X 调用 Y,那么 X 还不如同步调用 Y,因为它在 Y 完成之前无法返回客户端。 (如果 X 调用 Y 和 Z,那么 X 进行异步调用可能更有意义。)

      你能推荐一些在 这种情况?

      如果您之前使用过 WSE,那么 BasicHttpBinding 将是最接近您正在做的事情,并且在输出的内容上看起来非常熟悉。它也是最简单的一种。

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 2014-11-01
        • 2014-03-28
        • 1970-01-01
        • 2014-12-01
        • 2015-06-19
        • 1970-01-01
        • 2019-03-06
        • 2011-04-20
        相关资源
        最近更新 更多