Je suis curieux de savoir comment j'organiserais mon service pour arrêter proprement le serveur sur lequel le service sera installé. Par exemple, lorsque de nombreux clients se connectent et effectuent des opérations à chaque minute et que je souhaite arrêter le service pour la maintenance, comment puis-je le faire dans l'événement "OnStop" du service pour laisser le service principal refuser toute nouvelle connexions client et laissez les connexions en cours se terminer avant d'arrêter ses services au client, ce qui garantira que les données ne sont pas corrompues sur le serveur lorsque le serveur est arrêté.WCF Service auto-hébergé, nettoyage du client à l'arrêt du service
En ce moment, je ne suis pas configuré en tant que singleton car j'ai besoin d'évolutivité dans le service. Donc, je devrais en quelque sorte obtenir mon hôte de service pour le faire indépendamment de savoir combien d'instances sont créées de la classe de service.
Est-ce que "serviceHost.Close()" serait appelé avant "serviceHost.Dispose()" ou est-ce que tout ce dont j'ai besoin est "serviceHost.Dispose()" car il prendra en charge le .Close? – ScottN
@Sentax: Ils sont identiques. Vous pouvez appeler soit/ou. – casperOne
Mon serviceHost ne possède pas de méthode .Dispose, j'appelle la méthode .Close dans l'événement OnStop. J'ai essayé ceci quand un client était connecté et faisait des choses et il fermait toujours le serveur et le client devait encore être déconnecté. – ScottN