12 octobre 2009

SHAREPOINT : Eviter IISRESET

Problématique:
Réaliser un ISSRESET sur un environnement de prodution est très fortement déconseillé... Malheureusement dans la plupart des cas, le déploiements de certaines fonctionnalités utilise cette commande. L'interruption de service est globale à tous les sites présents sur le gestionnaire IIS. Ainsi quelqu'un travaillant sur la web application X est bloqué à cause du déploiement d'une fonctionnalité sur l'application Y...

Résolution:
Au lieu d'effectuer un iisreset, il est préférable de "recycler le pool d'application" lié à votre web application.
Ceci fait le même effet que le iisreset mais correspond à une frappe chirurgicale! Ceci permet d'éviter de perturber les autres applications hébergées par IIS sur d'autres pools d'applications (cela induit donc de disposer de pools différent pour chaque web application afin d'être propre).
La commande permettant de redémarrer un pool d'application précis pour éviter le iisreset est la suivante:
          cscript c:\windows\system32\iisapp.vbs /a "NomduPool" /r
En environnement de développement, il est possible de rajouter cette commande lors de la compilation du projet VS. Ainsi un petit F5 sur le projet et tout est déployé!

Autant dire qu'il vaut mieux privilégier le recyclage d'un pool ciblé plutôt que d'utiliser un ISSRESET qui est beaucoup plus lent et qui interrompt le service sur tous les sites hébergés...

Aucun commentaire:

Enregistrer un commentaire