web-dev-qa-db-fra.com

Visual Studio 2017 - Permettre aux utilisateurs distants d'accéder au site Web dans IIS Express

J'ai parcouru et essayé tous les guides que j'ai trouvés sur ce sujet, mais pas de chance. J'exécute un projet MVC avec HTTPS et je souhaite accéder au site de débogage avec des appareils mobiles distants pour tester le site Web. J'ai suivi un guide qui fonctionne presque et je pense que je suis assez près de le faire fonctionner. Voici les étapes que j'ai faites:

  • Désactiver le pare-feu
  • Ouvrez le dossier de projet du site Web, accédez à\vs\config\et ouvrez applicationhost.config
  • Trouvez votre site et votre ligne contenant votre port mappé comme ceci:

-Edit pour obtenir ce résultat:

  • A essayé d'exécuter Visual Studio en tant qu'administrateur à ce stade, erreur régulière 400: requête incorrecte - nom d'hôte non valide lorsque vous essayez d'accéder au site à partir d'un autre ordinateur
  • Ouverture de CMD en tant qu'administrateur et exécution de la commande suivante:

netsh http add urlacl url = http: // *: 44363/user = Everyone - La réservation d'URL a été ajoutée avec succès

-Essayé de démarrer Visual studio en tant qu'administrateur et non administrateur. Obtient le message d'erreur suivant

"Impossible de lancer IIS Express Web Server. Échec de la réinscription de l'URL" https: // localhost: 4436 "pour le site" x "Application. Description de l'erreur: impossible créer un fichier lorsque ce fichier existe déjà "

-Je dois ensuite réexécuter cmd et supprimer l'url avec la commande: netsh http delete urlacl url = http: // *: 44363 /

Comment faire en sorte que cela fonctionne avec Visual Studio 2017? Je ne peux pas être à plusieurs étapes de le faire fonctionner. J'ai lu de nombreux guides mais aucun ne fonctionne

12
FireNacho

Incroyable à quel point un besoin commun aussi simple peut être si douloureux à remplir dès le départ en 2017!

Quoi qu'il en soit https://github.com/icflorescu/iisexpress-proxy a bien fonctionné pour moi.

Installez-le avec le noeud:

npm install -g iisexpress-proxy

Alors c'est juste quelque chose comme:

iisexpress-proxy 51123 to 3000

Moins de 2 minutes pour démarrer.

18
JasonPlutext

Permettez-moi de partager mon expérience avec Visual Studio et IIS Express qui devrait vous aider. Je n'utilise pas HTTPS et mon type de projet est un site Web avec WCF mais vous devriez être en mesure d'atteindre votre objectif. Ici sont des prérequis:

  1. IIS Express installé
  2. Visual Studio installé
  3. Ajout d'une réservation d'URL pour le port public (netsh http add url = http: // *: 50001/User = Everyone) à partir de l'invite de commandes élevée.
  4. Ajout d'une règle entrante du pare-feu pour 50001 TCP (Panneau de configuration -> Pare-feu Windows -> Paramètres avancés -> Règles entrantes -> Nouvelle règle ...)

Maintenant, configurons un projet dans VS. J'utilise l'un des modèles prédéfinis avec C #. Compilez-le et essayez de l'exécuter à partir de VS. À ce moment, VS démarre l'instance de développeur d'IISExpress qui aide votre site à fonctionner. Vous devriez pouvoir voir IIS Express icône dans la zone de notification. Avec un clic droit, vous verrez que votre site est en cours d'exécution et un port (nous l'appellerons VSPORT) qui est attribué par VS. Ce Le port doit être différent du port réservé (50001). Si vous avez réussi à le faire sans problème, vous avez presque tout prêt pour faire fonctionner votre site sans VS.

  1. Accédez à votre dossier de projet
  2. Accédez au dossier .vs
  3. Accédez au dossier config
  4. Ouvrez applicationhost.config
  5. Localiser les sites/section your_site
  6. Copiez tout entre votre_site et/votre_site

Nous devons maintenant ajouter ces informations dans "global" IIS Express config.

  1. Accédez à IIS dossier Express (quelque chose comme c:\Users\USERNAME\Documents\IISExpress)
  2. Accédez au dossier config
  3. Ouvrez applicationhost.config
  4. Localiser la section des sites.
  5. Collez des informations sur votre site.
  6. Modifier la liaison de

protocole de liaison = "http" bindingInformation = "*: VSPORT: localhost"

à

protocole de liaison = "http" bindingInformation = ": 50001:"

  1. Sauvegarder les modifications

Avec cette modification, vous pouvez démarrer IISExpress.exe directement et vous pouvez continuer à utiliser VS pour travailler sur votre projet en même temps.

Si vous souhaitez y accéder depuis d'autres ordinateurs, faites-le comme http: // YOURIP: 50001 / . N'oubliez pas que vous devez vous assurer que votre code javascript n'utilise PAS directement l'adresse et le numéro de port.

5
Vladimir.RL