针对多个服务调用的WCF最佳实践

本文关键字:WCF 最佳 调用 服务 | 更新日期: 2023-09-27 18:27:29

我们正在编写一个WCF服务,它必须管理外部客户的请愿书,在这些请愿书上,我们将:

  • 连接到另一个外部服务(不在我们的控制之下)并验证签名以确保调用者的身份
  • 对我们的环境进行几次操作
  • 最后,如果一切正常,请调用另一个外部服务(同样不在我们的控制之下),并获得一个注册表号作为响应发送给客户端

从我的角度来看,外部服务调用增加了太多的熵,不允许所有进程只在一个操作中进行,有很多可能的场景超出了我们的能力范围,可以在最终客户端上超时。

IMHO我们应该尝试编写不同的操作来管理每个不同的部分(在第二步和第三步中生成一个安全令牌来进行身份验证),这样我们就可以避免所有流程都很好,但需要太多时间,客户端停止等待响应,从而产生超时的情况。

团队中的其他成员并不认同我的观点,他们希望在一次手术中完成所有任务。

对于这类场景,是否有最佳实践?使用不同的操作会更好吗?还是根本不会产生影响?

针对多个服务调用的WCF最佳实践

您可以利用回调合约。创建单向操作,让客户端调用服务并命令所有工作完成。在方法中保存客户端的引用,完成所有长期运行的工作后,检查客户端的引用是否为空,以确保客户端没有关闭。如果没有,则调用回调合约中指定的回调操作。这种方法的好处是,客户不会一直等待结果,但当结果出来并准备好提供时,他会得到通知。我推荐你担任这一职务。