web-dev-qa-db-fra.com

Création d'un point de terminaison API dans un service Windows .NET

J'ai un projet ASP.NET et un service Windows .NET fonctionnant sur la même machine, et je veux qu'ils communiquent (actuellement uniquement ASP.NET => Service à sens unique).

Le moyen le plus pratique de le faire (IMO) serait un REST/autre point de terminaison API dans le service que le projet ASP.NET appellerait (car ASP.NET fonctionne de toute façon avec les API et ils peuvent être protégé, etc.). Le problème est que je n'arrive pas à trouver un moyen de le faire dans un service Windows. Existe-t-il une méthode/bibliothèque native pour prendre en charge cela?

Utilisation de .NET Framework 4.5.2 dans les deux projets.

Merci.

8
Yoav Lavi

mise à jour au cas où vous êtes sur un terrain vierge et vous demandez comment commencer; s'il vous plaît jeter un oeil à ASP.NET Core consultez cet article


Il y a une bibliothèque disponible chez nuget:

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

Il y a un article sur la façon de l'utiliser ici. C'est une application console, mais facilement convertie en service 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();
        }
    }
}

Vous constaterez que vous disposerez de toutes les fonctionnalités communes de l'API (c.-à-d. Contrôleurs, itinéraires, filtres d'action).

8
Stefan