【问题标题】:Re-using a thirdy party web service using WCF使用 WCF 重新使用第三方 Web 服务
【发布时间】:2011-07-08 22:45:20
【问题描述】:

我有一个第 3 方网络服务,我打算从 2 个不同的应用程序中使用它:

  1. 一个 Windows 工作流 (WF) 项目
  2. 一个网站

现在,我从这 2 个应用程序中手动添加对 3rd 方 Web 服务的引用并调用所需的方法。这意味着我在 2 个地方生成了这个代理层。

我正在寻找一种在一个地方创建(不确定要使用的正确词,对不起)第 3 方 Web 服务并让 2 个应用程序重复使用它的方法。

这是否可以使用 WCF 来实现,例如在 WCF 中包装 3rd 方 Web 服务。

这种方法对吗?任何帮助或指针都会有很大帮助,还没有做过很多基于服务的开发。

环境:网站,WF项目驻留在2个不同的服务器上(windows 2003 R2)。

环境(开发):windows 7 企业版/vs 2010 / c#

谢谢

更多细节:

认为我在第一个查询中使用了正确的词,以下是我要查找的内容以及为什么我需要它,我需要从新的 WCF 服务调用第 3 方 Web 服务。这个新的 WCF 服务将从其他应用程序(winforms/WF/website)调用,而不是调用第 3 方服务。这个想法是能够在不更改实现的情况下切换第 3 方服务(供应商)。我们使用 hr-xml 格式对于请求/响应,我们所有的供应商(现有或未来)都支持我们所在行业的 hr-xml 格式。如果我们使用类库,那么要更改供应商,我们应该重新编译和分发正确的 dll,我们不想要要做到这一点。我不确定实现这整个功能要遵循的架构。任何指向正确方向的指针都会有很大帮助。

谢谢

【问题讨论】:

    标签: wcf


    【解决方案1】:

    您的任务确实很有意义 - 我认为它应该很容易完成:

    • 创建一个新的类库程序集(“WebServiceClient”或任何您想调用的名称)
    • 在那个新项目中,你Add Service Reference - 这将创建必要的 WCF 代理类和配置文件
    • 编译那个类库

    从您的两个应用程序中,您应该能够引用该 Web 服务客户端程序集并使用它 - 您仅在该公共程序集内拥有客户端代理的代码,但您可以在任意数量的应用程序中使用它。

    要记住的一点:您需要将 Web 服务的配置复制并粘贴到主应用程序的配置中(app.config 用于 Winforms/控制台应用程序,web.config 用于网站/Web 应用程序),因为它无法读取直接来自类库的配置文件(.NET 不会使用)。

    【讨论】:

    • 谢谢马克,为我节省了一天,但是将这个第 3 方 Web 服务包装为 WCF 服务,将其托管在第 3 项服务中然后从这 2 个应用程序中使用它有什么好处吗?抱歉,这是另一个开发者的建议,我不明白。
    • @Jiby Jose:不,我看不出那个额外的包装器有什么好处。只需在一个通用的共享程序集中创建一次客户端代理 - 就足够了
    • 嗨,马克,我添加了更多细节,你能指出我正确的方向吗,我发现很难选择正确的设计来实现这个
    • 第三方 Web 服务是冷融合 Web 服务,如果我对此正确(我看到了 .cfc),不确定这是否会有所作为
    【解决方案2】:

    在这种情况下,我认为 WCF 服务将是 gr8 的想法。如果供应商更改,您不想重新编译客户端应用程序。

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多