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

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 DocumentsIISExpressconfigapplicationhost.config
Recherchons la config de notre site

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

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