.Net Core Windows service met Topshelf
Topshelf is een mooie nuget package voor .Net om gemakkelijk een Windows Service te ontwikkelen, te installeren of om de applicatie niet als windows service te gebruiken maar als “normale” executable. Topshelf heeft een mooie site met mooie voorbeelden en documentatie.
Ik heb het tijdens meerdere projecten gebruikt en ik wilde nog een paar dingen opschrijven die ik geleerd heb over de service dependencies in die tijd.
Service Dependencies
Service dependencies zijn alleen bruikbaar als de applicatie als windows service draait. Het is ook iets van Windows zelf waarbij aangegeven kan worden dat een service alleen mag starten als de services waarvan deze service afhankelijk is ook gestart zijn. Dit kan tijdens installatie van de service aangegeven worden en met Topshelf kan het ook in de code. Het mooie is dat deze dependencies alleen gecheckt worden als de andere service ook daadwerkelijk aanwezig is. Mocht de service niet aanwezig zijn wordt de afhankelijkheid ook niet vastgelegd. Tot het moment dat de service waarvan men afhankelijk is wordt geinstalleerd, dan komt de dependency/afhankelijkheid automatisch terug.
Met Topshelf kan de dependency makkelijk in de code worden vastgelegd:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Om achteraf nog service dependencies toe te voegen zonder de code aan te passen staat op Stackoverflow een goede beschrijving.