Publié vendredi 20 février 2009 11:16 par Rui

Hebergement WCF et IIS

Pour ceux qui utilisent IIS pour hoster une partie de leurs services WCF ou même lorsque vous lancez des services WCF à partir de Visual Studio sous Vista (ou Server 2008), vous avez certainement rencontré des problématiques de droits.
En effet il n'est pas possible nativement pour des raisons de sécurité évidentes d'ouvrir une Uri à l'écoute sur un Windows récent (ça ne résoud pas tous les trous de vers mais bon ;-)). La plus part du temps on résoud cela rapidement en augmentant les privilèges du service. Ce qui peut se traduire par:

Sous IIS, lancer l'application pool du site hébergeant le WCF en mode Local System:



Sous Visual Studio: redémarre en mode [Run as Administrator] ...

C'est une bonne solution en développement ou en dépannage, mais un peu légère du point de vue d'un Admin Sys.

La solution la plus propre consiste tout simplement à accorder des droits de publication à un utilisateur X sur une Uri Y. Pour cela deux utilitaires, httpcfg sous Windows 2003 ou netsh sous Vista et Windows Server 2008.

Pour info, httpcfg se trouve dans l'installation des SupportTools du CD de Windows Server 2003 et netsh est livré nativement avec Vista et +.

En ligne de commande pour voir la liste des droits actuellement définis sur une machine vous pouvez taper:
  • httpcfg query acl
  • netsh http show urlacl
Ce qui vous donnera une liste du type:



Pour ajouter alors une uri (http://localhost:1234/MyService) à un utilisateur(Network Service) sous netsh il suffira de taper la commande suivante (avec des droits administrateur bien sur):
netsh http add urlacl url=http://+:1234/MyService user="NETWORK SERVICE" listen=yes delegate=yes
Sous httpcfg, c'est un peu plus pénible car il faut rentrer l'acl directement...Je vous conseille donc d'utiliser l'excellent petit utilitaire HttpConfig.

C'est une petite interface très simple qui fonctionne à la fois sous 2003 et Vista qui permet à la fois d'afficher les Uri actuelles avec leurs droits et d'en ajouter/supprimer:


Bref, c'est assez pratique (surtout si une fois sur deux vous oubliez comme moi de lancer Visual Studio en mode Admin cela peut vous éviter quelques relances de solution...)

Bien sur tout cela est surtout à voir dans un cadre de production avec les Administrateurs qui eux sauront adapter leur politique de sécurité.

Bons services

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Classé sous , , ,

# re: Hebergement WCF et IIS @ samedi 21 février 2009 14:01

C'est sûr que le SDDL, si on ne pratique pas tous les jours... (d'ailleurs, même si on pratique tous les jours ? :p)

Merci pour les informations, ça risque de servir !

coq


Les 10 derniers blogs postés

- Attacher un debugger au démarrage d'un processus par CoqBlog le il y a 6 heures et 47 minutes

- Nommez vos variables de la même manière que votre premier-né par CoqBlog le il y a 17 heures et 14 minutes

- XmlnsDefinitionAttribute et Silverlight par Michel Perfetti [Miiitch] le 11-27-2009, 10:00

- WPF et déclarations de namespaces par Michel Perfetti [Miiitch] le 11-26-2009, 10:00

- Vous connaissez PLINQ, demain il y aura DryadLINQ par Nicolas Humann le 11-25-2009, 16:33

- [.NET] Notes sur le code – 2 : Passage par référence et par valeur par Thomas Jaskula le 11-25-2009, 13:31

- Service WCF orienté données Agile avec EF4 et “faux” provider LINQ par Matthieu MEZIL le 11-24-2009, 23:41

- Microsoft Application Architecture Guide, seconde edition disponible par Michel Perfetti [Miiitch] le 11-24-2009, 23:30

- [Prism] Vidéo en ligne par DjoDjo le 11-24-2009, 10:09

- Scott Guthrie en France le 8 décembre: le développement web et le cloud computing avec la plate-forme Windows Azure par Blog de Frédéric Queudret le 11-23-2009, 11:12