Comment puis-je activer les requêtes distantes dans IIS Express? Scott Guthrie a écrit que c’est possible mais il n’a pas dit comment.
Une publication de blog sur le site de l’équipe IIS explique comment activer les connexions à distance sur IIS Express . Voici la partie pertinente de ce post résumée:
Sous Vista et Win7, exécutez la commande suivante à partir d’une invite d’administration:
netsh http add urlacl url=http://vaidesg:8080/ user=everyone
Pour XP, installez d’abord les outils de support de Windows XP Service Pack 2. Ensuite, exécutez la commande suivante à partir d’une invite d’administration:
httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)
Il y a trois changements à apporter.
.config
. Typiquement:
$(solutionDir)\.vs\config\applicationhost.config
Trouvez l’élément de liaison de votre site et ajoutez
netsh http add urlacl url=http://*:8080/ user=everyone
Où everyone
est un groupe de fenêtres. Utilisez des guillemets doubles pour les groupes avec des espaces comme “Tout le monde”.
Autoriser IIS Express via le pare-feu Windows.
Démarrer / Pare-feu Windows avec sécurité avancée / Règles entrantes / Nouvelle règle …
Programme
%ProgramFiles%\IIS Express\iisexpress.exe
OU Port 8080 TCP
Maintenant, lorsque vous démarrez iisexpress.exe
vous devriez voir un message tel que
URL enregistrée avec succès “http: // *: 8080 /” pour l’application “hello world” du site “/”
Je me souviens d’avoir rencontré les mêmes problèmes en essayant ce workflow il y a quelques mois.
C’est pourquoi j’ai écrit un utilitaire de proxy simple spécifiquement pour ce type de scénario: https://github.com/icflorescu/iisexpress-proxy .
En utilisant le proxy IIS Express , tout devient assez simple – pas besoin de “netsh http add urlacl url = vaidesg: 8080 / user = everyone” ou de faire une erreur avec votre “applicationhost.config”.
Il suffit de lancer cette invite de commande:
iisexpress-proxy 8080 to 3000
… Et vous pouvez ensuite diriger vos périphériques distants sur http: // vaidesg: 3000 .
La plupart du temps, c’est plus simple.
Rien n’a fonctionné pour moi jusqu’à ce que je trouve iisexpress-proxy .
Ouvrez l’invite de commande en tant qu’administrateur, puis exécutez
npm install -g iisexpress-proxy
puis
iisexpress-proxy 51123 to 81
en supposant que votre projet Visual Studio s’ouvre sur localhost: 51123 et que vous souhaitez accéder à l’adresse IP externe xxxx: 81
Edit: juste pour mentionner que cela fonctionne très bien avec noip.com
Travailler avec SSL au moment du développement est plus facile avec IISExpress de Scott Hanselman.
Vous recherchez ensuite la section Externalisation de IIS Express sur le port 80
En sidote à ceci:
netsh http add urlacl url=http://vaidesg:8080/ user=everyone
Cela ne fonctionnera que sur les versions anglaises de Windows. Si vous utilisez une version localisée, vous devez remplacer “Tout le monde” par autre chose, par exemple:
Sinon, vous obtiendrez une erreur (Echec de la création de SDDL, erreur: 1332)
Je l’ai résolu avec l’installation de “Conveyor by Keyoti” dans Visual Studio Professional 2015. Conveyor génère une adresse REMOTE (votre IP) avec un port (45455) qui active la requête externe. Exemple:
Conveyor vous permet de tester des applications Web depuis des tablettes et des téléphones externes sur votre réseau ou depuis des émulateurs Android (sans http://10.0.2.2:
)
Les étapes sont dans le lien suivant:
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
Si vous travaillez avec Visual Studio, procédez comme suit pour accéder à IIS-Express via IP-Adress:
ipconfig
dans la ligne de commande Windows Aller à
$(SolutionDir)\.vs\config\applicationHost.config
Trouver
Ajouter:
avec votre adresse IP
Si vous avez essayé la réponse du colonel Panic mais ne fonctionne pas dans Visual Studio, essayez ceci:
Ajoutez un autre
dans votre configuration IIS Express
Enfin, vous devez exécuter Visual Studio en tant qu’administrateur
Ce qui m’a aidé, c’était un clic droit sur l’icône «IISExpress», «Afficher toutes les applications». Puis en sélectionnant le site Web et j’ai vu quel aplicationhost.config il utilise, et la correction s’est parfaitement déroulée.
La réponse acceptée à cette question est un guide pour que IIS Express fonctionne avec WebMasortingx. J’ai trouvé ce guide plus utile pour essayer de le faire fonctionner avec VS 2010.
J’ai simplement suivi les étapes 3 et 4 (exécutant IIS Express en tant qu’administrateur) et j’ai dû désactiver temporairement mon pare-feu pour le faire fonctionner.
Vous pouvez essayer de configurer le transfert de port au lieu d’essayer de modifier votre configuration IIS Express, d’append de nouvelles règles HTTP.sys ou d’exécuter Visual Studio en tant qu’administrateur.
Fondamentalement, vous devez transférer l’ IP:PORT
votre site Web s’exécute sur un autre port libre de votre machine, mais sur la carte réseau externe, pas localhost.
La chose est que IIS Express (au moins sur Windows 10) se lie à [::1]:port
ce qui signifie qu’il écoute sur le port IPv6. Vous devez en tenir compte.
Voici comment j’ai fait ce travail – http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html
J’espère que cela aide.
J’ai des problèmes avec IIS Express sous Windows 8.1 et une demande externe.
Je suis ces étapes pour déboguer la demande externe:
Ça marche!
C’est ce que j’ai fait pour Windows 10 avec Visual Studio 2015 pour activer l’access à distance, à la fois avec http et https:
La première étape consiste à lier votre application à votre adresse IP interne. Exécutez cmd
-> ipconfig
pour obtenir l’adresse. Ouvrez le fichier /{project folder}/.vs/config/applicationhost.config
et faites défiler jusqu’à ce que vous trouviez quelque chose comme ceci:
Ajoutez deux nouvelles liaisons sous des bindings
. Vous pouvez également utiliser HTTPS si vous aimez:
Ajoutez la règle suivante à votre pare-feu, ouvrez une nouvelle invite cmd
tant qu’administrateur et exécutez les commandes suivantes:
netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow
Maintenant, démarrez Visual Studio en tant Administrator
. Cliquez avec le bouton droit sur le fichier de projet de projets Web et sélectionnez Properties
. Accédez à l’onglet Web
, puis cliquez sur Create Virtual Directory
. Si Visual Studio n’est pas exécuté en tant qu’administrateur, cela échouera probablement. Maintenant, tout devrait fonctionner.
Si vous exécutez Visual Studio depuis Admin, vous pouvez append simplement
ou
dans
%userprofile%\My Documents\IISExpress\config\applicationhost.config
J’avais un IIS local activé donc je viens de créer une règle de réécriture sur mon port de débogage … Je pense que c’est mieux et plus cool que les autres méthodes car il est plus facile à supprimer une fois le développement terminé … Voici à quoi ressemble la réécriture. .
VS vous permet également de développer directement en utilisant votre IIS local (ce qui permet alors des connexions à distance) mais à son tour, vous devez toujours l’exécuter en tant qu’administrateur … Je n’aime pas ça.
Je n’ai pas été en mesure de répondre à de telles demandes à d’autres utilisateurs de mon réseau local. Tout ce que j’avais à faire (en plus de ce qui précède) était de redémarrer mon routeur BT Hub.
C’est incroyablement génial et couvre même le HTTPS avec de jolis noms de domaine:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
Les parties vraiment géniales que je n’ai pu trouver nulle part ailleurs sur SO au cas où le lien ci-dessus disparaîtrait:
> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage: > iisexpressadmincmd.exe Supported commands: > setupFriendlyHostnameUrl -url: > deleteFriendlyHostnameUrl -url: > setupUrl -url: > deleteUrl -url: > setupSslUrl -url: -CertHash: > setupSslUrl -url: -UseSelfSigned > deleteSslUrl -url: > > Examples: 1) Configure "http.sys" and "hosts" file for friendly > hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl > -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly hostname "contoso": iisexpressadmincmd > deleteFriendlyHostnameUrl -url:http://contoso:80/
L’utilitaire ci-dessus enregistrera le certificate SSL pour vous! Si vous utilisez l’option -UseSelfSigned, c’est super facile.
Si vous voulez faire les choses à la dure, la partie non évidente est que vous devez indiquer à HTTP.SYS quel certificate utiliser, comme ceci:
netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE
Certhash est le “Thumbprint” que vous pouvez obtenir à partir des propriétés du certificate dans MMC.
J’ai fait ce qui suit et j’ai pu me connecter:
1) modification de la liaison de configuration express IIS de l’hôte local vers ‘*’
protocole de liaison = “http” bindingInformation = “*: 8888: *”
2) Règle entrante définie sur le pare-feu pour autoriser le port particulier du type de protocole: tcp
3) Ajoutez la commande suivante pour append une configuration réseau à votre port: netsh http add urlacl url = http: // *: 8888 / user = everyone
J’ai résolu ce problème en utilisant une approche proxy inverse.
J’ai installé le serveur Wamp et utilisé la fonctionnalité de proxy inverse simple du serveur Web Apache.
J’ai ajouté un nouveau port pour écouter le serveur Web Apache (8081). Ensuite, j’ai ajouté la configuration de proxy en tant que virtualhost pour ce port.
ProxyPass / http://localhost:46935/ ProxyPassReverse / http://localhost:46935/
[boîte de dialog des propriétés du projet]
Pour le développement à l’aide de VisualStudio 2017 et d’un projet API NetCore:
1) Dans Cmd-Box: ipconfig / all pour déterminer l’adresse IP
2a) Entrez l’adresse IP récupérée dans Propriétés du projet -> Onglet Débogage
2b) Sélectionnez un port et connectez-le à l’adresse IP de l’étape 2a.
3) Ajoutez une règle d’autorisation dans le pare-feu pour autoriser le trafic TCP entrant sur le port sélectionné (mon pare-feu est déclenché par une boîte de dialog: “Bloquer ou append une règle au pare-feu”). Ajouter sera dans ce cas faire l’affaire.
Inconvénient de la solution ci-dessus:
1) Si vous utilisez une adresse IP dynamic, vous devez recommencer les étapes ci-dessus au cas où une autre adresse IP a été atsortingbuée.
2) Votre serveur a maintenant un port ouvert que vous pourriez oublier, mais ce port ouvert rest une invitation pour les invités indésirables.