【问题标题】:ASP.Net Web API vs WCF - Can the Web API be used to provide REST-based communication to a singleton WCF service?ASP.Net Web API 与 WCF - Web API 能否用于向单例 WCF 服务提供基于 REST 的通信?
【发布时间】:2012-03-11 23:13:09
【问题描述】:

我有一组现有的单例 WCF 服务。它们是长期运行的进程,会持续进行大量工作,并通过 WCF 服务合同公开自己,以便与其他进程进行通信。

在开发 WCF Web API 时,我很兴奋,因为看起来我终于能够摆脱所有烦人的合同内容,只需为每个服务提供一个与平台无关的 REST API 并拥有进程通过 HTTP 请求和 JSON 响应进行通信。

现在看来,Web API 已成为 IIS 托管的 ASP.Net 功能,这让我想弄清楚我是否只是遗漏了什么,或者我的 WCF 服务是否将不再有机会提供 REST 接口.

如果 Web API 不再真正针对我的场景,ASP.Net 团队对希望向其他消费进程提供基于 HTTP/JSON 的 API 的非终止单例进程有何设想?

【问题讨论】:

    标签: asp.net wcf wcf-web-api asp.net-web-api


    【解决方案1】:

    您不必在 IIS 中托管 ASP.NET Web API 服务。如果您愿意,有一个名为“Self Hosting”的选项将允许您在另一个进程(例如 Windows 服务)中托管您的 API 服务。我想您当前的架构可以作为自托管应用正常工作。

    【讨论】:

    【解决方案2】:

    您可以使用ServiceHost 自行托管,如this MSDN example。见related SO post。本质上 - IIS 不是 WCF 托管的要求。

    如果您使用webHttpBinding - 您只需创建从ServiceHost 扩展的WebServiceHost 以支持REST。

    【讨论】:

      猜你喜欢
      • 2012-05-30
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      相关资源
      最近更新 更多