Comment puis-je maintenir un service WCF actif entre les demandes? Le service crée un cache simple en mémoire à l'initialisation et je ne veux pas que le service ait à se réinitialiser entre les requêtes. Le cache est construit en utilisant des données extraites d'une base de données et donc, pour des raisons d'efficacité, je n'ai besoin que rarement de le faire.
La base de données ne sera pas mise à jour fréquemment et le recyclage du pool d'applications tous les soirs suffira pour mettre à jour le cache.Créer un service WCF hébergé dans IIS7 actif entre la demande?
Répondre
Vous posez deux questions. Si vous avez besoin d'une instance de service active entre les requêtes, vous devez cocher InstanceContextMode comme PerSession ou Single. Si vous avez besoin d'une initialisation d'application pour préparer votre cache partagé, vous devez vérifier IIS 7.5 Warm-up module et placer votre initialisation sur Application_Start dans Global.asax. Pour les anciennes versions d'IIS, vous devez écrire une application (la console suffit) qui sera programmée pour appeler votre application/service web et la réchauffer.
Le paramètre InstanceContextMode défini sur single ne semble pas fonctionner entre les connexions. Je configure les données en mémoire dans le constructeur statique de services. Si je fais des appels subséquents à partir de clients Sperate alors ce constructeur est appelé à chaque fois. Je ne connais pas trop IIS, il se peut que je manque quelque chose de fondamental ici. – gouldos
Puis quelque chose ne va pas avec votre application car le constructeur statique ne devrait être appelé qu'une seule fois (ainsi que le constructeur non statique pour le service défini comme Single). Pourquoi votre application redémarre-t-elle? –
Malheureusement, je ne peux pas utiliser le module de préchauffage en raison de contraintes internes, mais le retard dans l'initialisation n'est pas trop grand que ce serait un problème. – gouldos
Comment implémentez-vous le cache? – Kev
Le 'cache' est purement une variable statique. – gouldos