3

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

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

现在看起来 Web API 已成为 IIS 托管的 ASP.Net 功能,让我试图弄清楚我是否只是缺少某些东西,或者我的 WCF 服务是否将不再有机会提供 REST 接口。

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

4

2 回答 2

5

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

于 2012-02-21T16:33:23.937 回答
1

您可以使用此 MSDN 示例ServiceHost中的自托管。请参阅相关的 SO 帖子。本质上 - IIS 不是 WCF 托管的要求。

如果您正在使用webHttpBinding- 您只需要创建WebServiceHost扩展ServiceHost来支持 REST。

于 2012-02-21T16:41:08.680 回答