ASP.Net Web API与WCF - Web API是否可用于为单例WCF服务提供基于REST的通信?

时间:2012-02-21 16:16:28

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

我有一套现有的单例WCF服务。它们是长期运行的流程,可以持续进行大量工作,并通过WCF服务合同展示自己与其他流程进行通信。

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

现在看起来Web API已成为IIS托管的ASP.Net功能,让我试图弄清楚我是否只是遗漏了某些内容,或者我的WCF服务是否将无法再提供REST接口

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

您可以使用ServiceHost中的this MSDN example进行自托管。见related SO post。基本上 - IIS不是WCF托管的必要条件。

如果您使用的是webHttpBinding,则只需创建从ServiceHost扩展的WebServiceHost即可支持REST。

相关问题