Je crée une application de service WCF qui s'exécute dans IIS 7.0. Dans son initialisation, je lance une boucle sans fin (while (true)), mais après une période de temps, où je n'ai pas appelé une méthode de son fichier svc, le wcf passe en mode inactif, et il ne réagit pas le processus que la boucle doit faire. C'est comme si ça ne fonctionnait plus. Et puis, si j'appelle une méthode à son fichier svc, il recommence à fonctionner. Y at-il une solution pour éviter le mode inactif afin qu'il puisse continuer à garder la procédure dans la boucle en vie?L'application de service WCF reste inactive jusqu'à ce que vous l'exécutiez manuellement. Fichier .svc
Répondre
Les services WCF sont conçus pour se «réveiller» lorsque des demandes sont faites. Si vous voulez quelque chose comme l'interrogation continue, vous pouvez envisager de créer un Windows Service à la place.
Si vous cherchez un service WCF qui maintient l'état, vous devrez l'implémenter vous-même. L'one-way est de déployer un service de flux de travail (utilisant WF 4) avec la persistance, telle que SqlWorkflowInstanceStore. Il expose son interface en utilisant WCF. Le service sera inactif entre les appels, mais les instances se souviendront de l'état.
WCF est conçu pour être consommé et déclencher des événements, et non pour héberger des processus de longue durée. Vous voulez vraiment WF (fondation de flux de travail) ou BizTalk pour héberger des événements de longue durée. Les événements de la WCF sont généralement de courte durée. Vous pouvez créer un XAMLX qui combine les deux concepts.
Pourquoi voudriez-vous faire cela? L'idée est que le processus n'est pas actif jusqu'à ce qu'il soit appelé. Que fait la boucle while (true)? – Lazarus