【问题标题】:WCF callback contracts and server to serverWCF 回调合同和服务器到服务器
【发布时间】:2010-02-24 18:54:48
【问题描述】:

我正在开发一个包含多个 WCF 服务的解决方案,这些服务都相互通信,即使它们属于不同类型。这些服务通过 ChannelFactory 通用接口相互连接,每个服务都托管在一个 ServiceHost 中。

我的问题是,在服务器之间使用回调合约相互通信是否正确,如果正确,这样的解决方案看起来如何。

目前我不喜欢这种实现,因为每个服务都需要托管几个具有不同接口的端点,一些用于其他服务,一些用于其他客户端。

当我尝试在托管在 ServiceHost 内的服务类中实现回调协定时,它失败了。

【问题讨论】:

    标签: wcf duplex


    【解决方案1】:

    首先,每当您发布“失败”的问题时,您需要告诉我们失败的原因。如果出现异常,则需要通过发布ex.ToString() 的结果来发布整个异常,包括所有 InnerException 实例。

    对于您的问题,我将实施一个服务合同,该合同代表每个服务中需要与其他服务通信的部分。还会有一个与此服务合约关联的回调合约。

    这样,就好像每个服务都运行一个微型服务,仅用于服务到服务的通信。然后,他们可以各自使用在服务之间传递的信息做自己的事情。

    【讨论】:

    • 在您提到的情况下,假设每个服务都将其接口托管在服务主机中。我会将其他进程连接到的回调放在哪里?我的意思是 ISomeMessage 类型将由 SomeMessageService 通过 ServiceHost 托管。什么会实现 IServiceMesssageCallback ?顺便说一句,我避免使用 crud 生成的代理。
    • 我看不出回调不能由同一个服务类实现的原因。另外,请记住,每个服务都可以有自己独特的服务契约实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 2011-03-04
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2014-04-13
    相关资源
    最近更新 更多