Créer un service Windows avec une API Web .NET 6
Le développement d'applications modernes implique souvent la création de services web qui exposent des fonctionnalités à d'autres applications. .NET 6 offre un framework puissant pour construire des API Web performantes et robustes. Lorsqu'il s'agit d'exécuter ces API Web de manière fiable et autonome, un service Windows est une solution idéale.
Pourquoi un service Windows ?
Un service Windows est un programme qui s'exécute en arrière-plan, indépendamment de toute session utilisateur. Cela permet à votre API Web de rester active et disponible même si aucun utilisateur n'est connecté à l'ordinateur. De plus, les services Windows sont conçus pour être fiables et robustes, avec des fonctionnalités de redémarrage automatique en cas d'erreur.
Étapes pour créer un service Windows avec une API Web .NET 6
-
Créer un projet d'API Web .NET 6 :
- Ouvrez Visual Studio et créez un nouveau projet.
- Sélectionnez le modèle API Web (.NET 6).
- Définissez le nom de votre projet et l'emplacement du fichier.
-
Ajouter les dépendances nécessaires :
- Dans le fichier
Program.cs
, ajoutez les dépendances suivantes :builder.Services.AddHostedService
(); - Remplacez
MyWindowsService
par le nom de votre classe de service Windows.
- Dans le fichier
-
Créer la classe de service Windows :
- Créez une nouvelle classe qui implémente l'interface
IHostedService
. - Définissez les méthodes
StartAsync
etStopAsync
. - Dans la méthode
StartAsync
, démarrez votre API Web. - Dans la méthode
StopAsync
, arrêtez votre API Web.
- Créez une nouvelle classe qui implémente l'interface
-
Configurer le service Windows :
- Ouvrez le fichier
appsettings.json
et définissez les propriétés de configuration pour votre service Windows. - Par exemple, vous pouvez spécifier le port d'écoute de l'API Web.
- Ouvrez le fichier
-
Déployer le service Windows :
- Utilisez l'outil
dotnet publish
pour publier votre application. - Installez le service Windows publié sur votre serveur.
- Démarrez le service Windows.
- Utilisez l'outil
Exemple de code :
public class MyWindowsService : IHostedService
{
private readonly IHostApplicationLifetime _lifetime;
public MyWindowsService(IHostApplicationLifetime lifetime)
{
_lifetime = lifetime;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
// Démarrer l'API Web
// ...
_lifetime.ApplicationStarted.Register(() => Console.WriteLine("Service démarré !"));
}
public async Task StopAsync(CancellationToken cancellationToken)
{
// Arrêter l'API Web
// ...
_lifetime.ApplicationStopping.Register(() => Console.WriteLine("Service arrêté !"));
}
}
Avantages d'utiliser un service Windows :
- Fiabilité et robustesse : Les services Windows sont conçus pour être fiables et robustes, avec des fonctionnalités de redémarrage automatique en cas d'erreur.
- Indépendance de la session utilisateur : Les services Windows s'exécutent en arrière-plan, indépendamment de toute session utilisateur.
- Contrôle et gestion : Les services Windows peuvent être facilement gérés et contrôlés à l'aide des outils intégrés de Windows.
En conclusion, un service Windows est un choix idéal pour héberger une API Web .NET 6, offrant une solution fiable, autonome et facile à gérer. Cette approche garantit que votre API Web reste disponible et accessible en permanence, même en l'absence d'utilisateurs connectés.