在.NET Windows服务中创建API终结点

Yoa*_*avi 8 .net c# asp.net rest service

我有一个ASP.NET项目和一个.NET Windows服务在同一台计算机上运行,​​我希望它们进行通信(当前只有ASP.NET => Service一种方式)。

最方便的方法(IMO)是ASP.NET项目将调用的服务中的REST /其他API端点(因为ASP.NET无论如何都可以使用API​​,并且可以对其进行保护等)。问题是我似乎找不到在Windows服务中执行此操作的方法。是否有本机方法/库支持此功能?

在两个项目中都使用.NET Framework 4.5.2。

谢谢。

Ste*_*fan 8

更新以防万一您在未开发的地方并且想知道如何开始; 请看看ASP.NET Core看看这篇文章


nuget有一个可用的库:

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.OwinSelfHost

这里有一篇有关如何使用它的文章。这是一个控制台应用程序,但是很容易转换为Windows服务。

class Program
{
    static void Main(string[] args)
    {
        using (WebApp.Start<Startup>("http://localhost:8080"))
        {
            Console.WriteLine("Web Server is running.");
            Console.WriteLine("Press any key to quit.");
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您会发现您将拥有所有常用的API功能(例如,控制器,路由,动作过滤器)。

  • 对于阅读此书的任何人,更新后的库都是https://www.nuget.org/packages/Microsoft.AspNet.WebApi.OwinSelfHost/,链接的是旧版。 (2认同)