Pour les besoins d’une démonstration, je cherchais il y a quelques jours comment publier des services Web sous Vista depuis Visual Studio 2005. A priori, pas de soucis : je créer un nouveau projet Web, je créé quelques services Web, je le publie en mode fichier, je lance un IE pour tester une page et paf, une erreur.

Comme toujours dans ces cas là, j’’étais pressé et n’avait donc pas le temps de creuser. Il faudra que je revienne dessus mais la compilation à la volée de pages avec du code-behind ne semble pas être une chose immédiate avec IIS7.

Je me suis dit : pas de problème, je télécharge le modèle « à la 2003 » disponible sur http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx et je déploie un site avec une assembly précompilée, à l’ancienne, cela devrait le faire.

Je télécharge et j’installe donc le pré-requis (http://go.microsoft.com/fwlink/?LinkId=63636), et j’installe le nouveau modèle. Mais là, erreur : Access Denied pendant l’installation sur un sous-répertoire de Visual Studio 8 qui en plus n’existe pas 

Après quelques essais, j’ai pu finaliser l’installation en la lançant sous le compte Administrator qui, par défaut, est désactivé. Donc, lancement du gestionnaire d’utilisateurs, modification des propriétés du compte pour l’activer, changement du mot de passe. Si votre ordinateur n’est pas dans un domaine, il faut en plus ajouter une clé dans la base de registre (faites une recherche sur winlogon et Administrator). J’installe donc, enfin, le module et je désactive le compte (s’il l’est par défaut, autant qu’il le reste).

Cela a l’air long dit ainsi, mais c’est probablement plus rapide à faire qu’à écrire.

Ensuite, pour se simplifier la vie, il faut, dans l’ordre :

  • Lancer la console IIS pour créer une application dans un sous-répertoire de wwwroot (ce qui simplifie la gestion ultérieure des droits).
  • Créer sous VS2005 une nouvelle application C# (et non un nouveau site Web) puis choisir le type de projet Web Application.
  • Compiler l’application et la déployer en mode fichier via le menu contextuel du projet.

Ce faisant, on développe et débogue dans Cassini et on déploie sur II7 quand on est prêt…

Bon, il y a probablement plus simple, mais quand on est pressé, cela peut servir. Il faudra quand même que je trouve une solution au problème initial