IISExpress : Servir des pages vers l’extérieur.

Publié par Fabrice Michellonet sous le(s) label(s) , le 28 mars 2014

Nul doute, IISExpress nous a simplifié la vie au quotidien de par sa facilité d'utilisation et son intégration à Visual Studio.
Aujourd'hui, je devais travailler à rendre un site compatible avec l'ipad. Ni une ni deux, je lance safari et pointe vers l'ip de ma machine de dev.
Et boom une belle erreur, me prévient que IISExpress ne servira de pages qu'en local.

Voici comment je l'ai configuré afin de pouvoir tester sur mon Ipad.

1 - Configurons notre site web afin qu'il soit bindé sur toutes les IP de notre machine de dev.

Pour ce faire ouvrons le fichier de config de IISExpress qui se trouve sur : %userprofile%\My Documents\IISExpress\config\applicationhost.config
Recherchons la config de notre site


<site name="MonSite" id="10">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\!Project\MonSite" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:44300:localhost" />
</bindings>
</site>

remplaçons le binding afin que le site soit servi quelque soit l'ip sur laquelle arrive la requete


<site name="MonSite" id="10">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\!Project\MonSite" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:44300:*" />
</bindings>
</site>

2 - Réservons l'url au niveau du kernel (HTTP.sys)

Cela se fait via la ligne de commande suivante, a executée dans une console en mode admin.


netsh http add urlacl url=https://*:44300/ user=everyone

Note : pour ceux qui travaillent sur un windows en français il faudra alors taper


netsh http add urlacl url=https://*:44300/ user="tout le monde"


3 - Autoriser le trafic au travers du firewall

De nouveau une commande à exécuter via une console en mode admin :


netsh firewall add portopening TCP 44300 IISExpressWeb enable ALL


Voila, j'espère que cette astuce pourra vous éviter de rester coincé si vous devez exposer un site hebergé sur votre machine de dev