ASP.Net Web API vs WCF-Web API是否可以用于向单例WCF服务提供基于REST的通信



我有一组现有的单例WCF服务。它们是长时间运行的进程,在持续的基础上做大量工作,并使用WCF服务契约公开自己,以便与其他进程进行通信。

当WCF Web API被开发时,我很兴奋,因为看起来我终于可以摆脱所有令人讨厌的合同,只需为每个服务提供一个平台化的抽象REST API,并让进程通过HTTP请求和JSON响应进行通信。

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

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

您不必在IIS中托管ASP.NET Web API服务。有一个名为"自托管"的选项,如果您愿意,它将允许您在另一个进程(如Windows服务)中托管API服务。我想,作为一个自托管应用程序,您当前的体系结构会很好地工作。

您可以像本MSDN示例中那样使用ServiceHost自托管。参见相关SO帖子。本质上,IIS不是WCF托管的要求。

如果您使用的是webHttpBinding-您只需要创建从ServiceHost扩展到支持REST.

WebServiceHost

最新更新