2010-09-17 5 views
1

J'ai un service wcf et je veux appeler une méthode automatiquement, immédiatement après la publication dans IIS. Comme une initialisation du service WCF sans avoir à appeler la méthode manuellement ou d'ailleurs. Où dois-je placer ma méthode Initialize dans le service WCF afin de s'exécuter exactement après le démarrage de l'application?Service WCF Démarrer

Répondre

2

Si vous hébergez dans IIS vous pouvez utiliser le Application_Start événement dans le Global.asax de l'application Web qui héberge le service WCF pour faire une initialisation de l'application. Si vous essayez d'appeler l'un de vos services lors de sa première installation, il s'agit probablement d'une mauvaise approche.

Quelle est la motivation pour exécuter du code au démarrage du service Web? Si vous essayez de contourner un appel initial lent au service WCF, je suggère que vous voulez faire un peu de travail sur le côté WCF client plutôt que dans le service ... mais je devine juste à votre motivation ici

0

Initialisation du service WCF? Donc, avez-vous un service de singleton ou voulez-vous initialiser un état global? Sinon, l'initialisation n'a aucun sens car les instances de service seront créées pour les clients réels.

Par défaut, IIS démarre l'application lorsqu'il est accédé pour la première fois. Si vous placez l'initialisation dans Application_Start (HttpApplication ou Global.asax), le code sera exécuté au premier accès à l'application. Mais l'accès au service n'est pas quelque chose que votre application peut initier. IIS 7.5 (Windows 2008 R2) dispose d'un module de préchauffage qui peut exécuter du code lorsque le pool est recyclé ou que le worker est redémarré. Si vous utilisez une autre version d'IIS, vous devez utiliser une solution externe comme une application personnalisée qui envoie un ping à votre service à intervalles réguliers.

+0

Un service WCF configuré avec le mode instance unique obtient son instance créée automatiquement par la plateforme d'hébergement. Donc, l'initialisation aura lieu après le déploiement de toute façon (en supposant que l'initialisation est correctement effectuée dans le constructeur) –