从另一个呼叫一个WCF服务时需要考虑的事项

从另一个呼叫一个WCF服务时需要考虑的事项,wcf,web-services,asmx,wcf-binding,Wcf,Web Services,Asmx,Wcf Binding,我们正在将一组WSE服务迁移到WCF平台 新的WCF服务是通过安全HTTP调用的。(https) 我想从一个WCF服务调用另一个WCF服务的操作契约。这两个服务大多托管在同一个IIS中,但它们可以位于单独的IIS服务器上 在这种情况下,我是否需要处理一些事情(目前我显然不知道) 在这种情况下是否有特殊的调用机制 当调用是同步的和异步的时,调用机制会改变吗 你能推荐一些在这种情况下可以随时使用的绑定类型吗 仅仅因为一个WCF服务方法调用另一个WCF服务,就不应该有任何特殊需要。WCF服务不“关心”

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

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

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

  • 在这种情况下,我是否需要处理一些事情(目前我显然不知道)
  • 在这种情况下是否有特殊的调用机制
  • 当调用是同步的和异步的时,调用机制会改变吗
  • 你能推荐一些在这种情况下可以随时使用的绑定类型吗

  • 仅仅因为一个WCF服务方法调用另一个WCF服务,就不应该有任何特殊需要。WCF服务不“关心”其他应用程序类型调用其方法,只要它们使用正确的服务约定、数据约定、端点和绑定设置

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

    1。)如果服务位于同一个框中,除非您有任何令人信服的理由不这样做,否则请使用命名管道彼此通信。虽然WCF本身并不关心你在做什么,只要地址、绑定和契约都匹配(请看我在那里做了什么?),但在建立网络连接时,.NET会。你用的越少越好。(有关更多详细信息,请参阅)

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

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

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

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

    在这种情况下,您要么不能使用Windows身份验证(如果您正在使用它),要么必须在域上设置一些特殊的委托内容才能使其正常工作。Windows身份验证不会在不同服务器之间“跳转”,关于这个问题有很多阅读材料

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

    当调用是同步的并且是同步的时,调用机制是否会改变 异步的

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

    你能推荐一些在中国很容易买到的装订类型吗 这个案子


    如果您以前使用过WSE,那么BasicHttpBinding将是最接近您所做的事情,并且它的输出看起来非常熟悉。这也是最简单的解决方法。

    +1为您提供答案。你的意思是我需要在
    Web.Config
    文件中添加一个端点吗?使用代码中的端点?怎么办?我是WCF的新手。好吧,如果你没有端点,你就不会和你的服务交谈:)所以需要一个端点,是的,把它放到你的web.config文件中。我的意思是Web.Config是正确的文件,或者其他一些配置文件可以出现在图片中。对于代理类,我们在代理类上获得
    Url
    属性,并且可以指向特定的服务端点。然而,由于我没有可以将URL设置为端点的任何内容,我如何从其他服务指向特定端点。所以我错过了一些东西。我正在读这本书,但若你们能提供信息那个就太好了。