1 Après avoir modifié le fichier applicationhost.config (situé dans le dossier IISExpress de vos documents), les liaisons de votre site doivent ressembler à celles-ci:
<bindings>
<binding protocol="http" bindingInformation="*:8080:*" />
</bindings>
Les reliures se composent de trois parties. Tout d'abord une adresse IP ou une liste, ou comme dans ce cas, un caractère générique. Deuxièmement, le numéro de port, et troisièmement un nom d'hôte, une liste ou un caractère générique (pour le filtrage par en- Host
tête). À des fins de développement, un caractère générique est le plus approprié ici car vous utiliserez probablement un port unique.
2 Étant donné que vous utilisez une liaison non-localhost, des autorisations supplémentaires sont requises. Vous pouvez exécuter VS en tant qu'administrateur, ou de préférence, vous devez ajouter des listes de contrôle d' accès URL pour accorder les autorisations requises. Dans l'exemple ci-dessous, l'autorisation est donnée à tout le monde, mais vous pouvez utiliser votre propre nom d'utilisateur.
Remarque: le urlacl
doit correspondre exactement à la liaison. Ainsi, un urlacl
for http://*:8080
permettra une liaison de *:8080:*
, mais pas une liaison de *:8080:localhost
même si ce dernier est un sous-ensemble du premier. cela signifie que si, au lieu d'utiliser un caractère générique, vous répertoriez les en-têtes d'hôte applicationhost.config
, vous devez ajouter une correspondance urlacl
pour chacun.
Les étapes de configuration de HTTP.sys pour le trafic externe sont similaires à la configuration d'un site pour utiliser un port réservé. Sous Windows 7 ou Windows Vista, à partir d'une invite de commandes avec élévation de privilèges, exécutez la commande suivante:
netsh http add urlacl url=http://*:8080/ user=DOMAIN\username
Sous Windows XP, exécutez la commande suivante à partir d'une invite de commandes avec élévation de privilèges:
httpcfg set urlacl /u http://*:8080/ /a D:(A;;GX;;;WD)
Remarque 2 Si l'exécution de VS en tant qu'administrateur ou l'ajout d'entrées ACL ne résout pas votre problème, exécutez IIS Express à partir de la ligne de commande et vérifiez s'il existe des messages d'échec d'enregistrement de liaison. Pour commencer à partir de la ligne de commande, donnez cette commande:
iisexpress.exe /site:"your-site-name"
3 Enfin, vous aurez besoin des entrées de pare-feu appropriées. Pour cela, il est plus simple d'utiliser la console "Pare-feu Windows avec sécurité avancée".
Sous "Règles entrantes", choisissez "Nouvelle règle ...".
- Le type de règle est "Personnalisé".
- Le programme est Services-> Personnaliser ...-> Appliquer uniquement aux services. (Bien que IIS Express ne soit pas un service, le multiplexeur HTTP qu'il utilise l'est).
- Le protocole est TCP
- Ports spécifiques: répertoriez tous les ports pour toutes vos liaisons IIS Express. Vous pouvez revenir à cette règle et ajouter des ports à tout moment. (Si cela devient fastidieux, vous pouvez ajouter une plage telle que celle
40000-65534
qui couvre toute la plage utilisée par Visual Studio, mais sachez que cela est moins sécurisé).
- L'action est "Autoriser la connexion"
- Le profil sera l'un des suivants. En cas de doute, choisissez "Domaine + privé".
- "Domaine", si le vôtre est un bureau d'entreprise et ne fonctionnera que sur le domaine local
- "Domaine + Privé" Si le vôtre est une machine de développement privée dans un environnement non professionnel, ou un ordinateur portable d'entreprise qui doit également fonctionner lorsque vous travaillez à domicile.
- "Domaine, privé et public", si vous avez besoin de faire des démonstrations sur des réseaux non privés.
- Le nom doit être quelque chose comme "IIS Express Dev Server"