Configurer IIS Express pour un accès externe au projet VS2010
je développe un projet dans VS2010 et suis en mesure de voir mon site localement via IIS Express. Je voudrais activer l'accès externe sur le réseau.
toutes mes recherches m'ont envoyé à cette entrée de blog: http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx , ce qui est utile mais ne semble pas montrer comment configurer les fixations pour un projet lancé dans visual studio (Je ne trouve pas l'écran dans les screenshots, et j'ai édité des informations de liaison dans applicationhost.config, mais il ne semble pas être prises en compte lorsque je lance le site à partir de visual studio).
9 réponses
1 après avoir édité applicationhost.fichier de configuration (situé dans le dossier IISExpress de vos documents), les reliures de votre site doivent ressembler à ce qui suit:
<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 joker. Deuxièmement le numéro de port, et troisièmement un nom d'hôte, ou une liste, ou un joker (pour le filtrage par Host
en-tête). Pour les besoins du développement, un joker est le plus approprié ici car vous utiliserez probablement un port unique.
2 parce que vous utilisez la reliure non-localhost, des permissions supplémentaires sont nécessaires. Vous pouvez exécuter VS en tant qu'administrateur, ou de préférence vous devriez ajouter URL ACLs pour accorder les permissions requises. Dans l'exemple ci-dessous, l'autorisation est donnée à tout le monde, mais vous pouvez utiliser votre propre nom d'utilisateur.
Note: le urlacl
doit correspondre exactement à la liaison. Ainsi, un urlacl
pour http://*:8080
permettra une liaison de *:8080:*
, mais pas d'une liaison de *:8080:localhost
même si le dernier est un sous-ensemble de l'ancien. cela signifie que si, au lieu d'utiliser un joker, vous énumérez les en-têtes de l'hôte dans applicationhost.config
, vous devez ajouter une correspondance urlacl
pour chacun.
les étapes pour configurer HTTP.les sys pour le trafic externe sont similaires à la mise en place d'un site port réservé. Sur Windows 7 ou Windows Vista, à partir d'une invite de commande élevée, lancez la commande suivante:
netsh http add urlacl url=http://*:8080/ user=DOMAIN\username
sur Windows XP, exécutez la commande suivante à partir d'un prompt de commande élevé:
httpcfg set urlacl /u http://*:8080/ /a D:(A;;GX;;;WD)
Note 2 si exécuter VS en tant qu'administrateur ou ajouter des entrées ACL ne résout pas votre problème, lancez IIS Express À partir du ligne de commande et vérifier s'il y a des messages d'échec d'enregistrement obligatoires. Pour commencer par la ligne de commande, donnez cette commande:
iisexpress.exe /site:"your-site-name"
3 enfin, vous aurez besoin d'entrées pare-feu appropriées. Pour cela, il est plus facile d'utiliser la console "Windows Firewall with Advanced Security".
sous" règles entrantes "choisir" nouvelle règle...".
- Type de Règle est "Personnalisé".
- Programme de Services->Personnaliser...- >S'appliquent uniquement aux services. (Bien que IIS Express ne soit pas un service, le multiplexeur HTTP qu'il utilise est).
- protocole is TCP
- Ports spécifiques: énumérez tous les ports pour toutes vos liaisons IIS Express. Vous pouvez revenir à cette règle, et d'ajouter des ports à tout moment. (Si cela devient ennuyeux, vous pouvez ajouter une gamme telle que
40000-65534
qui couvre toute la gamme utilisée par Visual Studio, mais soyez conscient que c'est moins sûr). - 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 sera exécuté que sur le domaine local
- "domaine + privé" si le vôtre est une machine de développement privé dans un environnement non d'entreprise, ou un ordinateur portable d'entreprise qui a également besoin de travailler lorsque vous travaillez à domicile.
- "Domaine Privé et Public", si vous avez besoin de faire des démonstrations sur la non-réseaux privés.
- nom devrait être quelque chose comme "IIS Express Dev Server"
j'ai passé des heures sur cette question aussi bien, en essayant de naviguer de mon Android Xoom à mon win7 dev machine, afin que je puisse tester un nouveau asp.net application web j'ai créé. Tout ce que j'ai fait, c'est changer l'application de IISExpress.config de l'utilisation du PC nom d'hôte de l'ordinateur actuel de l'adresse IP, pour mon nouveau site.
<binding protocol="http" bindingInformation="*:80:dev-Lee" />
à
<binding protocol="http" bindingInformation="*:80:192.168.1.102" />
une fois que j'ai fait ceci et re-commencé IISExpress... J'ai pu naviguer sur ma machine dev-Lee et voir mon application depuis mon Xoom!
nous pouvons ajouter plusieurs adresses de liaison en éditant applicationhost.config of IIS Express
<bindings>
<binding protocol="http" bindingInformation="*:62217:localhost" />
<binding protocol="http" bindingInformation="*:62217:192.168.0.5" />
<binding protocol="http" bindingInformation="*:62218:192.168.0.5" />
</bindings>
maintenant, nous pouvons accéder au site web à partir de lan en utilisant l'adresse IP.
accès à des sites locaux à partir D'un réseau local utilisant IIS Express
Visual Studio 2013 SP1 et supérieur (2015) inclut le réglage "Appliquer les paramètres du serveur pour tous les utilisateurs (stocker dans le fichier de projet)". Cette option est activée par défaut. Lorsqu'il est activé, Visual Studio lance IIS Express avec des arguments en ligne de commande qui lui permettent d'utiliser un fichier de configuration différent. L'emplacement du "poste d'application".config' fichier sous le répertoire de projet.vs\config'.
nous avons fait une extension gratuite VS (2012, 2013, 2015) appelé convoyeur qui permet cela - vous pouvez le trouver à travers les outils->Extensions... menu en VS ou sur le site de la galerie https://visualstudiogallery.msdn.microsoft.com/a429dbb7-a982-4541-b401-934375c02c0f?SRC=Home
si vous travaillez avec Visual Studio, suivez ces étapes pour accéder à L'IIS-Express Via L'adresse IP:
- Obtenir votre hôte de l'Adresse IP:
ipconfig
en Ligne de Commande de Windows - GoTo $(SolutionDir).vs\config\applicationHost.config
- Trouver
<site name="WebApplication3" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" /> </application> <bindings> <binding protocol="http" bindingInformation="*:62549:localhost" /> </bindings> </site>
- ajouter:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
avec votre adresse IP - courir votre Visual Studio avec les droits D'administrateur et tout devrait fonctionner
- peut-être chercher des problèmes de pare-feu si vous essayez de vous connecter à distance
l'indice est, que le studio visuel a obtenu son propre coût d'application.fichier de config!
j'ai eu beaucoup de mal à obtenir que cela fonctionne à partir de visual studio 2012, je suis passé de 404 erreurs à 503 erreurs. Finalement, ce qui a fonctionné pour moi, c'est d'effacer toute la configuration associée dans la configuration IIS Express...
"\Program Files (x86)\IIS Express\appcmd.exe" list site
"\Program Files (x86)\IIS Express\appcmd.exe" delete site xxx
"\Program Files (x86)\IIS Express\appcmd.exe" delete site yyy
puis j'ai créé un nouveau répertoire virtuel à partir de la page de propriétés dans mon projet web en VS mais avant de créer le répertoire virtuel j'ai changé le nom d'hôte en http://myhost:80 / puis cliquez sur Créer virtuel bouton de répertoire. Précédemment j'avais eu des erreurs disant que le nom d'hôte devait être 'localhost' mais cette fois-ci ce n'est pas le cas. Et après cela, il a travaillé.
en bref, supprimez d'abord la configuration existante et recommencez.
si votre domaine externe est "name.mydyndns.com", alors vous devez écrire:
<binding protocol="http" bindingInformation="*:name.mydyndns.com" />
cela fonctionne sur Windows 2003 Server et IIS 7.5 Express.
dans le pool d'applications IIS ensemble "Activer les Applications 32 Bits" à "true".