Question
J'ai un service WCF et utiliser Spring.ServiceModel.Activation.ServiceHostFactory comme une usine dans mon * .svc. Ce que je dois est de charger des données dans le cache lorsque le service est appelé première fois ou redémarré. Pourriez-vous s'il vous plaît suggérer une meilleure façon de le faire? En ce moment je hérité de la Spring.ServiceModel.Activation.ServiceHostFactory et mettre là-bas mon code, mais devrait probablement être une meilleure façon? Tnx à l'avance.
La solution
Nous avons ce genre de code de démarrage dans le constructeur statique de notre ServiceHostFactory personnalisé. En fonction de vos paramètres en ce qui concerne pool d'applications « IIS de votre service (s) cela devrait être bien.
Vous devez avoir un regard sur les paramètres de recyclage du pool d'applications. Une fois qu'il est recyclé, le constructeur statique sera appelé à nouveau.
Autres conseils
Vous pouvez utiliser AOP pour intercepter l'appel (puisque vous utilisez déjà le printemps) pour obtenir le « premier appel », mais la chose la plus simple à faire serait d'appeler votre fournisseur de cache dans le constructeur de votre service ou une initialisation méthode.