J'essaye de mettre en place une application .Net Core Console en tant que service. En utilisant le standard .Net, j'utilise généralement Topshelf mais cela ne semble pas prendre en charge .Net Core.

Puisque Topshelf n'est pas une option, que puis-je faire pour exécuter l'application .Net Core Console en tant que service Windows?

Je suis venu accéder à https://github.com/PeterKottas/DotNetCore.WindowsService, est-ce un substitut viable à un environnement de production?

8
Matthew P. 23 mai 2018 à 01:30

3 réponses

Meilleure réponse

Il y a quelques options:

  1. Utilisez le Pack de compatibilité Windows qui ramène ServiceBase et les API associées à .NET Core, afin que TopShelf puisse fonctionner immédiatement. (le pack est en RC au moment de la rédaction avec une version stable prévue dans environ une semaine)

  2. TopShelf prend désormais en charge .NET Core, sur la base du pack de compatibilité / compatibilité Windows pour les nouvelles versions de .NET Core.

  3. https://github.com/PeterKottas/DotNetCore.WindowsService semble fonctionner pour de nombreux utilisateurs alors je suggère de l'essayer.

  4. La bibliothèque dans (3) est une belle API autour de DasMulli.Win32.ServiceUtils que j'ai écrit pour que notre entreprise puisse déployer des applications .NET Core autonomes en production. Jusqu'à présent, nous n'avons eu aucun problème.

  5. D'autres hôtes de services qui font abstraction de l'infrastructure de service Windows et exécutent des programmes arbitraires - tels que Non-Sucking Service Manager. Notez que cela peut ne pas donner de bons moyens d'arrêter correctement en réaction à une commande d'arrêt.

9
Martin Ullrich 28 nov. 2018 à 12:57

Dans .net core, vous n'avez pas la possibilité de s'exécuter en tant que service. Cependant, si vous conteneurisez votre application de console, vous pouvez déployer le conteneur n'importe où et cela revient à s'exécuter en tant que service. À partir de .NET Core 2.1, vous pouvez utiliser Host et HostBuilder pour gérer la DI, la journalisation, l'arrêt progressif, etc. dans votre application console. Jettes un coup d'oeil à:

Services d'hébergement dans l'application console .NET Core

2
Peter 6 août 2018 à 06:35

Dans notre entreprise, nous utilisons Non-Sucking Service Manager que j'avais jusqu'à présent aucun problème avec, vous voudrez peut-être jeter un coup d'œil.

0
kuskmen 22 mai 2018 à 22:34