Windows 服务还是 Asp.net 网络 api RESTful 服务?

Windows Service or Asp.net web api RESTful service?

我正在使用 .NET Framework 4.5.1 开发 C# 解决方案。

我需要一个程序(一个对象实例)运行一直等待接收命令。该程序将有一个状态,根据该状态,它将允许某些命令或其他命令。

例如,它会有一个打开和关闭命令。如果状态不是openned,程序收到close命令,什么都不做。

我想创建一个 windows 服务或 ASP.NET MVC WebApi 2.2 应用程序。

如果我选择 windows 服务,该程序将始终 运行 但我不知道如何与它通信(也许添加它一个 TCP/IP 服务器)。

如果我使用 ASP.NET MVC WebApi 2.2,我可以使用 POST 或 PUT 消息发送命令,但我不知道我是否可以拥有一个对象实例 运行 而Web 服务已启动。

该程序是一个 class,我必须对其进行实例化。此实例将保持其状态以及与 WCF 服务的通信。

你推荐我什么?

可供选择的选项有点奇怪。

您可以在 windows 服务中自行托管 Web API,并使用 HTTP 与服务通信。请注意,Web API 是关于无状态的,因此,如果您需要保留状态,这应该是可持久化的数据。

关于与 windows 服务通信的方式,使用 Web API 以外的其他方式 - 有多种方式可以做到这一点。带 TCP/Named 管道的 WCF、纯命名管道(无 WCF)、套接字、内存映射文件。您只需要 select 最适合您的要求即可。