Comment activer les requêtes distantes dans IIS Express? Scott Guthrie a écrit que c'était possible mais il n'a pas dit comment.
c#
asp.net
iis-express
TedTel
la source
la source
Réponses:
Il y a un billet de blog sur le site de l'équipe IIS expliquant maintenant comment activer les connexions à distance sur IIS Express . Voici la partie pertinente de ce post résumée:
la source
netsh
commande pour autoriser les connexions sur n'importe quel nom d' hôte?user={PARAM_USER}
sera dans votre propre langue.user=todos
plutôt queuser=everyone
.Vous devrez peut-être effectuer trois modifications.
.config
dossier. Typiquement:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Trouvez l'élément de liaison de votre site et ajoutez
Où
everyone
est un groupe Windows. Utilisez des guillemets doubles pour les groupes avec des espaces comme "Tout le monde".Autorisez IIS Express via le pare-feu Windows.
Maintenant, lorsque vous commencez,
iisexpress.exe
vous devriez voir un message tel quela source
users=everyone
pournetsh
(deuxième étape) peut provoquer l'erreur 1789. La solution consiste à traduireeveryone
le nom de groupe correspondant dans votre langue.Project Url
, si j'entre un astérisque pour le nom d'hôte, il donne une erreur. Si j'entre autre chose, il essaie de créer un nouveau répertoire virtuel. Il n'est pas lié à l'entrée dans application.config.bindingInformation="*:8080:hostname"
et à l'étape 2url=http://hostname:8080/
, et dans les propriétés de votre projet Web Visual Studio sur l'onglet Web, définissez URL du projet surhttp://hostname:8080/
. Supprimez l'*
urlacl si vous en avez déjà créé un; cela ne fonctionnera pas si vous avez les deux. Enfin, l'URL à laquelle vous accédez dans votre navigateur Web doit faire référence au nom d'hôte et non à l'hôte local.<binding protocol="http" bindingInformation="*:8080:localhost" />
Je me souviens 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 express IIS , tout devient assez simple - pas besoin de "netsh http ajouter urlacl url = vaidesg: 8080 / user = tout le monde" ou de gâcher votre "applicationhost.config".
Émettez simplement ceci dans l'invite de commande:
iisexpress-proxy 8080 to 3000
… Puis vous pouvez pointer vos appareils distants vers http: // vaidesg: 3000 .
La plupart du temps, plus simple EST mieux.
la source
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
puis
en supposant que votre projet Visual Studio s'ouvre sur localhost: 51123 et que vous souhaitez accéder sur l'adresse IP externe xxxx: 81
Edit: j'utilise actuellement
ngrok
la source
En complément à ceci:
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 (échec de la création de SDDL, erreur: 1332)
la source
Une bonne ressource est de travailler avec SSL au moment du développement est plus facile avec IISExpress par Scott Hanselman.
Ce que vous recherchez est la section Obtenir IIS Express pour servir en externe sur le port 80
la source
Si vous travaillez avec Visual Studio, suivez ces étapes pour accéder à l'adresse IIS-Express sur IP:
ipconfig
dans la ligne de commande WindowsAller à
Trouver
Ajoutez:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
avec votre adresse IP
la source
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 permet une requête externe. Exemple:
Conveyor vous permet de tester des applications Web à partir de tablettes et de téléphones externes sur votre réseau ou d'émulateurs Android (sans
http://10.0.2.2:<hostport>
)Les étapes sont dans le lien suivant:
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
la source
Si vous avez essayé la réponse du colonel Panic mais ne fonctionne pas dans Visual Studio, essayez ceci:
Ajoutez-en un autre
<binding />
dans votre configuration IIS ExpressEnfin, vous devez exécuter Visual Studio en tant qu'administrateur
la source
Ce qui m'a aidé, c'est de cliquer avec le bouton droit sur l'icône 'IISExpress', 'Afficher toutes les applications'. Ensuite, 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 source
C'est ce que j'ai fait pour Windows 10 avec Visual Studio 2015 pour activer l'accès à 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
bindings
. Vous pouvez également utiliser HTTPS si vous le souhaitez:Ajoutez la règle suivante à votre pare-feu, ouvrez une nouvelle
cmd
invite en tant qu'administrateur et exécutez les commandes suivantes:Démarrez maintenant Visual Studio en tant que
Administrator
. Cliquez avec le bouton droit sur le fichier de projet de projets Web et sélectionnezProperties
. Accédez à l'Web
onglet et cliquez surCreate Virtual Directory
. Si Visual Studio n'est pas exécuté en tant qu'administrateur, cela échouera probablement. Maintenant, tout devrait fonctionner.la source
La réponse acceptée à cette question est un guide pour faire fonctionner IIS Express avec la matrice Web. J'ai trouvé ce guide plus utile lorsque j'essayais de le faire fonctionner avec VS 2010.
Je viens de suivre les étapes 3 et 4 (en exécutant IIS Express en tant qu'administrateur) et j'ai dû désactiver temporairement mon pare-feu pour le faire fonctionner.
la source
Vous pouvez essayer de configurer la redirection de port au lieu d'essayer de modifier votre configuration IIS Express, d'ajouter de nouvelles règles HTTP.sys ou d'exécuter Visual Studio en tant qu'administrateur.
Fondamentalement, vous devez transférer
IP:PORT
votre site Web sur un autre port libre de votre ordinateur, mais sur l'adaptateur réseau externe, pas sur localhost.Le fait est que IIS Express (au moins sur Windows 10) se lie au
[::1]:port
sens 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.
la source
La façon la plus simple et la plus cool que j'ai trouvée était d'utiliser (cela prend 2 minutes à configurer):
https://ngrok.com/
Cela fonctionnera avec tout ce qui fonctionne sur localhost. Inscrivez-vous, exécutez peu de données et tout ce que vous exécutez sur localhost obtient une URL publique à laquelle vous pouvez accéder de n'importe où.
C'est bon pour montrer des trucs à vos coéquipiers distants, sans jouer avec la configuration IIS ou les pare-feu. Vous voulez arrêter l'accès, il suffit de mettre fin à l'exécutable.
en supposant que 89230 est votre port IIS Express
Vous pouvez également exécuter plusieurs ports même sur un plan gratuit
la source
J'ai des problèmes avec IIS Express dans Win 8.1 et une requête externe.
Je procède comme suit pour déboguer la demande externe:
Ça marche!
la source
Si vous exécutez Visual Studio depuis Admin, vous pouvez ajouter simplement
<binding protocol="http" bindingInformation="*:8080:*" />
ou
<binding protocol="https" bindingInformation="*:8443:*" />
dans
la source
$(SolutionDir).vs\config\applicationHost.config
et aussi, j'ai dû ouvrir le port (8443) de l'application dans le pare-feu Windows.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 en utilisant votre IIS local directement (ce qui permet ensuite des connexions à distance) mais à son tour, vous devez toujours l'exécuter en tant qu'administrateur ... Je n'aime pas ça.
la source
J'ai résolu ce problème en utilisant l'approche proxy inverse.
J'ai installé le serveur Wamp et utilisé la fonction 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 du proxy en tant qu'hôte virtuel pour ce port.
la source
J'ai fait toutes ces étapes et rien ne m'a aidé. Et ce dont j'ai besoin, c'est juste pour exécuter mon application via IIS Express ...
J'espère que cela aide.
la source
Je n'ai pas pu servir les requêtes iis aux 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.
la source
C'est incroyablement génial et couvre même HTTPS avec de jolis noms de domaine:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
Les parties vraiment impressionnantes que je ne pourrais trouver nulle part ailleurs sur SO au cas où le lien ci-dessus disparaîtrait:
L'utilitaire ci-dessus enregistrera le certificat SSL pour vous! Si vous utilisez l'option -UseSelfSigned, c'est super simple.
Si vous voulez faire les choses à la dure, la partie non évidente est que vous devez dire à HTTP.SYS quel certificat utiliser, comme ceci:
Certhash est "l'empreinte numérique" que vous pouvez obtenir à partir des propriétés du certificat dans MMC.
la source
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 à «*»
protocole de liaison = "http" bindingInformation = "*: 8888: *"
2) Règle entrante définie sur le pare-feu pour autoriser le port particulier pour le type de protocole: tcp
3) Ajoutez la commande suivante pour ajouter la configuration réseau pour votre port: netsh http add urlacl url = http: // *: 8888 / user = Everyone
la source
Une autre façon d'accéder aux demandes externes consiste à utiliser IIS au lieu d'IIS Express. Dans mon studio visuel, je peux simplement basculer facilement.
la source
[boîte de dialogue 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 déclenché avec une boîte de dialogue: "Bloquer ou ajouter une règle au pare-feu"). Dans ce cas, Add fera l'affaire.
Inconvénient de la solution ci-dessus:
1) Si vous utilisez une adresse IP dynamique, vous devez refaire les étapes ci-dessus au cas où une autre adresse IP aurait été attribuée.
2) Votre serveur a maintenant un port ouvert que vous pourriez oublier, mais ce port ouvert reste une invitation pour les invités indésirables.
la source