2013-10-09 4 views
3

J'ai un service Windows hébergeant un service WCF. Si quelque chose ne va vraiment pas dans mon service WCF, je voudrais arrêter le service Windows. Je pourrais essayer de le forcer à s'arrêter en bombardant et en utilisant l'arrêt du filet, mais y a-t-il une façon plus «agréable» de le faire?Service Windows hébergeant WCF - Puis-je arrêter le service Windows à partir d'un service WCF?

WCF est géré le service moyen de fenêtres habituelles:

protected override void OnStart(string[] args) 
{ 
    if (serviceHost != null) 
    { 
     serviceHost.Close(); 
    } 

    ///WCF service hosted 
    serviceHost = new ServiceHost(typeof(XXXService)); 


    serviceHost.Open(); 
} 
+0

http://stackoverflow.com/questions/6136457/how-to-stop-self-hosted-wcf-service-upon-unhandled-errors – Goran

+1

Je pense que vous voudrez peut-être jeter un oeil à: http: // msdn.microsoft.com/fr-fr/library/system.serviceprocess.servicecontroller.aspx' –

Répondre

1

Dans le passé, nous avons mis en œuvre notre auto-hébergé WCF Services Windows avec une classe « Service Host Controller » qui contient des références aux objets ServiceHost et est donc responsable du "démarrage"/ouverture et "arrêt"/fermeture de l'objet hôte de service. En outre, la classe "Service Host Controller" implémente un délégué qui permet aux objets hébergés de rappeler dans le contrôleur et d'initier un arrêt normal.

Questions connexes