Comment activer la demande externe dans IIS Express?

466

Comment activer les requêtes distantes dans IIS Express? Scott Guthrie a écrit que c'était possible mais il n'a pas dit comment.

TedTel
la source
25
Il y a une extension VS gratuite pour cela que nous avons écrit visualstudiogallery.msdn.microsoft.com/…
Jim W dit réintégrer Monica
@ Jim Jim, êtes-vous le créateur du plugin? Pouvez-vous expliquer comment fonctionne ce miracle du génie logiciel?
Ian Warburton
@IanWarburton merci de l'appeler un miracle! C'est un serveur proxy inverse.
Jim W dit réintégrer Monica le
@JimW Merci de l'avoir créé.
Ian Warburton
@JimW J'ai essayé votre plugin et fais tout comme vous l'avez dit dans le tutoriel. Mais je ne peux toujours pas accéder à mon hôte local
mark_spencer

Réponses:

403

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:

Sur 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. Exécutez ensuite la commande suivante à partir d'une invite d'administration:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)

Damian Edwards
la source
121
En cas d'erreur 503, consultez ceci: stackoverflow.com/questions/5442551/…
deerchao
5
Existe-t-il une netshcommande pour autoriser les connexions sur n'importe quel nom d' hôte?
Colonel Panic
33
Pour mémoire, si vous avez une machine Windows dans une langue non anglaise, le paramètre de user={PARAM_USER}sera dans votre propre langue.
GoRoS
7
L'utilisation de caractères génériques dans le paramètre url (par exemple url = http: // *: 8080 /) fera fonctionner les connexions à la fois pour le nom d'hôte et l'adresse IP de l'ordinateur.
Anders
2
En cas d'échec de la commande (probablement erreur 1789), tenez compte du fait que la commande attend de l'utilisateur dans la langue de votre PC. Donc, si votre PC est en portugais par exemple, utilisez user=todosplutôt que user=everyone.
Vitor Canova
350

Vous devrez peut-être effectuer trois modifications.

  1. Dites à IIS Express de se lier à toutes les adresses IP et noms d'hôte. Dans votre .configdossier. Typiquement:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Trouvez l'élément de liaison de votre site et ajoutez

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Installez le bit de Windows appelé «http.sys». En tant qu'administrateur, exécutez la commande:
    netsh http add urlacl url=http://*:8080/ user=everyone

everyoneest un groupe Windows. Utilisez des guillemets doubles pour les groupes avec des espaces comme "Tout le monde".

  1. Autorisez 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 commencez, iisexpress.exevous devriez voir un message tel que

URL "http: // *: 8080 /" enregistrée pour le site "hello world" application "/"

Colonel Panic
la source
22
NB Si vous exécutez une version localisée de Windows, le paramètre users=everyonepour netsh(deuxième étape) peut provoquer l'erreur 1789. La solution consiste à traduire everyonele nom de groupe correspondant dans votre langue.
mflodin
5
Comment obtenir un projet Visual Studio pour accepter cette liaison? Dans les propriétés du projet, où vous spécifiez 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.
Trevor Elliott
20
Pour le faire fonctionner dans Visual Studio, vous devez utiliser le nom d'hôte de votre ordinateur à l'étape 1 bindingInformation="*:8080:hostname"et à l'étape 2 url=http://hostname:8080/, et dans les propriétés de votre projet Web Visual Studio sur l'onglet Web, définissez URL du projet sur http://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.
Joe Daley
5
Je devais également avoir une ligne localhost dans l'élément bindings, sinon visual studio 2013 a essayé de créer une entrée de site en double. par exemple:<binding protocol="http" bindingInformation="*:8080:localhost" />
kristianp
3
J'avais également besoin d'exécuter Visual Studio en tant qu'administrateur, mais cette réponse était la plus complète.
dlsso
127

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.

Ionut-Cristian Florescu
la source
3
Merci pour la bonne solution!
Summer-Time
1
Et je pourrais ajouter que les solutions Node.js comme celle-ci sont les seules qui fonctionnent de manière fiable sur Azure, car les générations Azure génèrent automatiquement le fichier applicationhost.config et effacent vos modifications de liaison.
TheHansinator
1
J'ai commencé à utiliser IIS Express Proxy sur mon Mac avec ngrok après que ngrok n'ait pas fonctionné comme prévu (car je n'avais pas fait la manipulation de configuration IIS Express nécessaire). Très utile! Je vous remercie.
codingoutloud
1
C'est de loin la solution la plus simple. Je préfère ne pas jouer avec l'applicationhost.config si je n'ai pas à le faire.
skalpin
4
Excellente solution! Maintenant, pour revenir en arrière et défaire le gâchis que j'ai fait de mon IIS Express.
Mitch Stewart
123

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 sur l'adresse IP externe xxxx: 81

Edit: j'utilise actuellement ngrok

Boîte à outils
la source
7
solution indolore
bahadir
4
La solution la plus simple que j'ai pu trouver. Devrait probablement renommer le package en quelque chose comme un proxy Web car vous pouvez l'utiliser pour plus que le transfert de iisexpress :)
Mario Tacke
8
@xgp - Salut, je suis l'auteur de iisexpress-proxy :-) Avez-vous finalement réussi à le faire fonctionner pour vous? Vous devez fermer et rouvrir l'invite de commande ou, dans de rares cas, redémarrer le système d'exploitation. Envoyez-moi une ligne dans la page du projet ( github.com/icflorescu/iisexpress-proxy ) si vous avez d'autres questions et j'essaierai de vous aider si j'ai le temps.
Ionut-Cristian Florescu
1
Merci à tous pour votre utilisation et pour vos aimables paroles :-). @MarioTacke - oui, je sais, mais plus de gens peuvent le trouver en faisant simplement une recherche sur Google si cela s'appelle iisexpress-proxy :-)
Ionut-Cristian Florescu
1
Btw, cela ne fonctionne pas avec l'authentification Windows.
Tom
35

En complément à 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:

  • "Iedereen" lors de l'utilisation d'une version néerlandaise
  • "Jeder" lors de l'utilisation d'une version allemande
  • "Mindenki" lors de l'utilisation d'une version hongroise

Sinon, vous obtiendrez une erreur (échec de la création de SDDL, erreur: 1332)

brise
la source
33

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

Luke Sampson
la source
Ce billet de blog recommande d'isoler le port 80 à "IISExpressWeb.exe". La version actuelle d'IIS Express n'a pas d'exe de ce nom - il n'y a que IISExpress.exe et IISExpressTray.exe. L'isolement des connexions empêche l'une des connexions de l'extérieur; l'élimination de la restriction du processus autorise les connexions. Quel est le .exe approprié à cibler?
Chris Moschini
33

Si vous travaillez avec Visual Studio, suivez ces étapes pour accéder à l'adresse IIS-Express sur IP:

  1. Obtenez votre adresse IP hôte: ipconfigdans la ligne de commande Windows
  2. Aller à

    $(SolutionDir)\.vs\config\applicationHost.config
  3. 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>
  4. Ajoutez: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    avec votre adresse IP

  5. Exécutez votre Visual Studio avec des droits d'administrateur et tout devrait fonctionner
  6. Recherchez peut-être des problèmes de pare-feu si vous essayez de vous connecter à distance
Daniel Eisenreich
la source
20

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:

entrez la description de l'image ici

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

Ronny Morán
la source
@kilianeller veuillez suivre le lien dans la réponse et poser une question là-bas, nous pouvons vous aider.
Jim W dit réintégrer Monica
Workst !!, je prouve toutes les autres solutions (changer applicationhost.config, netsh, adresse IPv6 ..) et rien, mais l'installation de cela fonctionne finalement, le seul petit problème était que l'adresse IP était mal dirigée, mais pas un problème sérieux.
Ion
Vraiment facile à installer. Assurez-vous simplement d'ajouter le certificat sur votre navigateur distant comme indiqué sur la page de l'extension.
Andres
Je ne peux pas le croire, ça marche !!! SI SIMPLE, SI ÉLÉGANT !!! J'ai passé les 5 dernières heures seulement à chercher des solutions vides et finalement je trouve ça!
Ziggy192
10

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 Express

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

Enfin, vous devez exécuter Visual Studio en tant qu'administrateur

Bruce
la source
Malheureusement, cela ne semble pas fonctionner pour moi .. Je reçois toujours une connexion refusée lorsque j'essaie d'accéder à mon
adresse
@ThomasTeilmann, dans Visual Studio, j'ai dû ouvrir les propriétés de l'application Web et sous l'onglet Web, modifier "Project Url" pour utiliser l'autre nom d'hôte au lieu de localhost.
Sam
@ThomasTeilmann, Oh, et je pense que vous devez y accéder par nom d'hôte plutôt que par IP.
Sam
J'ai essayé les deux aussi, en fait, et cela n'a pas fonctionné pour l'instance cloud: / Merci cependant
Thomas Teilmann
C'était la réponse pour moi (c'est-à-dire exécuter VS en tant qu'administrateur) - merci @Bruce. De plus, j'ai également dû corriger manuellement mes paramètres de pare-feu. Dans mon cas (c'est-à-dire tester que mon iphone peut parcourir ma machine de développement), l'ouverture du port 8080 sur le pare-feu n'a pas fonctionné (hein?) Mais l'ouverture de l'accès par ip (c'est-à-dire Portée> IP locales = 10.0.0.0/24 = ma maison réseau) a fait l'affaire.
Ilan
9

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.

Configuration IISExpress

Emmanuel
la source
2
Cette réponse m'a indiqué une autre solution, en modifiant applicationhost.config pour accepter : 55665: au lieu de *: 55665: localhost
Deko
Merci @Deko - votre commentaire, couplé à la commande netsh mentionnée dans quelques autres réponses, l'a fait fonctionner pour moi.
Marcel Popescu
8

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-> ipconfigpour obtenir l'adresse. Ouvrez le fichier /{project folder}/.vs/config/applicationhost.configet faites défiler jusqu'à ce que vous trouviez quelque chose comme ceci:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Ajoutez deux nouvelles liaisons sous bindings. Vous pouvez également utiliser HTTPS si vous le souhaitez:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Ajoutez la règle suivante à votre pare-feu, ouvrez une nouvelle cmdinvite en 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

Démarrez maintenant Visual Studio en tant que Administrator. Cliquez avec le bouton droit sur le fichier de projet de projets Web et sélectionnez Properties. Accédez à l' Webonglet et cliquez sur Create Virtual Directory. Si Visual Studio n'est pas exécuté en tant qu'administrateur, cela échouera probablement. Maintenant, tout devrait fonctionner.

entrez la description de l'image ici

Ogglas
la source
A travaillé pour moi! :) Il y a aussi un bon article ici: blog.kloud.com.au/2017/02/27/…
Leniel Maccaferri
J'ai essayé tout le reste, y compris ngrok en vain. Cela a fonctionné du premier coup.
kooldave98
5

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.

Tchad
la source
Les instructions que vous liez pour perdre la possibilité de déboguer à partir de Visual Studio, ce qui, au moins à mon avis, le rend inutile - l'utilisation d'IIS ou de tout autre serveur distant serait aussi bonne ou meilleure (car vous pouvez configurer le débogage à distance sur IIS au moins). Si IIS Express ne nécessitait pas de privilèges d'administrateur pour fonctionner sans localhost, cela fonctionnerait. Très ennuyant.
Chris Moschini
C'est exactement ce que je cherchais - merci! J'utilise IIS Express avec Visual Studio 2010 et j'allais tester une application ASP.NET MVC3 sur mon LAN, et c'était ce dont j'avais besoin pour que cela fonctionne :)
Lasse Christiansen
5

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:PORTvotre 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]:portsens 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.

srmrco
la source
J'utilise Windows 10 et la liaison de localhost à IPv6 était la clé. Merci!
TomaszGuzialek
L'ordinateur que j'essayais de configurer avait une autre adresse locale. Il a été nommé "local-dev". Je devais juste lier ajouter v4tov6 listenport = 3000 connectaddress = local-dev connectport = 60000 pour le faire fonctionner. Excellent article, merci!
Anika
4

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.

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -host-header=localhost 89230

en supposant que 89230 est votre port IIS Express

Vous pouvez également exécuter plusieurs ports même sur un plan gratuit

Artur Kędzior
la source
1
Qui penserait que je
devrai
3

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:

  1. Installer IIS
  2. Configurer Visual Studio pour utiliser IIS local (propriétés de page dans votre projet Web)
  3. Créer un AppPool exclusif dans IIS pour travailler avec mon application
  4. Dans mon projet, j'utilise Oracle Client et doit être 32 bits (64 bits ne fonctionnent pas avec Visual Studio), puis j'ai besoin d'autoriser 32 bits dans le pool d'applications
  5. Configurer le pare-feu Windows pour autoriser la demande dans le port 80 (règles entrantes)

Ça marche!

Robson Douglas
la source
2

Si vous exécutez Visual Studio depuis Admin, vous pouvez ajouter simplement

<binding protocol="http" bindingInformation="*:8080:*" />

ou

<binding protocol="https" bindingInformation="*:8443:*" />

dans

%userprofile%\My Documents\IISExpress\config\applicationhost.config
Andrii
la source
1
J'ai appliqué cette configuration à $(SolutionDir).vs\config\applicationHost.configet aussi, j'ai dû ouvrir le port (8443) de l'application dans le pare-feu Windows.
Tonatio
2

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. .

<rewrite>
    <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^dev/(.*)" />
            <action type="Rewrite" url="http://localhost:47039/{R:1}" />
        </rule>
    </rules>
</rewrite>

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.

Konzo
la source
C'est aussi ma solution préférée, merci :) Je devais d'abord activer le proxy inverse pour mon IIS, puis ajouter cette règle à mon web.config.
Mahdi Ghiasi
1

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.

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>
mustafacanturk
la source
1

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 ...

entrez la description de l'image ici

J'espère que cela aide.

Maksym Labutin
la source
0

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.

Terry Kernan
la source
0

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:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<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 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:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Certhash est "l'empreinte numérique" que vous pouvez obtenir à partir des propriétés du certificat dans MMC.

eselk
la source
0

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

dhakalan
la source
Puisque vous arrivez à cette question 6 ans après qu'elle a été posée, et qu'il y a déjà 12 autres réponses, il serait préférable que vous modifiiez votre réponse pour expliquer comment votre réponse fonctionne mieux que les 12 autres (ou au moins comment elle est différent).
Heretic Monkey
0

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.

entrez la description de l'image ici

PJ3
la source
J'utilise VS2019.
PJ3
-1

[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.

Paul Franke
la source