J'ai tenté d'exécuter mon service Web via Visual Studio. J'ai rencontré un problème comme:
---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.
Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)
---------------------------
OK
---------------------------
J'ai vu le gestionnaire de tâches et j'ai trouvé que PID 4 est utilisé par le système et sa description est NT Kernel & System.
donc j'ai essayé d'arrêter le http service
. Tous les services de dépendance se sont arrêtés. Mais je suis confronté à un problème pour arrêter le service http comme
The service is starting or stopping. Please try again later.
J'ai donc essayé d'arrêter et de démarrer le service manuellement. Mais le processus de fin est désactivé. Il sera utile que quelqu'un puisse vous aider avec ce problème
Réponses:
De https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/
Le code d'erreur
0x80070020
signifie queERROR_SHARING_VIOLATION
, dans le cas d'IIS Express (ou IIS), cela signifie que le port sur lequel il tente d'écouter est utilisé par un autre processus.Utilisez la
netstat
commande pour savoir quelle application utilise le port.Le
a
paramètre indique à netstat d'afficher toutes les connexions et tous les ports d'écoute.Le
o
paramètre indique à netstat d'afficher l'ID de processus associé à la connexion.L'exécution de la commande netstat ci-dessus produira une sortie telle que:
Le dernier numéro affiché (ici 9544) est l'ID de processus.
la source
TASKKILL /PID 2756 /F
remplacez2756
par votre ID de processus-n
commutateur - il utilise une sortie "numérique", ce qui signifie qu'il ne perd pas de temps à interroger le DNS afin de résoudre les adresses IP en noms d'hôtes.J'ai eu un problème similaire en essayant d'exécuter un projet à partir de Visual Studio 2019 sur Windows 10. L'application n'a pas pu démarrer car le port était apparemment utilisé par un autre processus. Cependant, la
netstat
commande a montré que le port n'était utilisé par aucune application.Après avoir passé 2 jours sur Google, j'ai trouvé une solution qui a fonctionné pour moi. Le port que j'essayais d'utiliser était dans la plage de ports exclus que vous pouvez voir en exécutant la commande:
Les coupables qui ont réservé ces ports dans mon cas étaient Docker pour Windows et Hyper-V
La solution
J'ai désinstallé Docker (car je n'en avais pas besoin) et désactivé Hyper-V. Pour désactiver Hyper-V: Accédez à: Panneau de configuration-> Programmes et fonctionnalités-> Activer ou désactiver les fonctionnalités Windows. Décochez Hyper-V et redémarrez l'ordinateur.
Après le redémarrage, la commande
netsh interface ipv4 show excludedportrange protocol=tcp
n'a montré aucun port réservé.J'ai ensuite ajouté le port de mon application à la plage de ports exclus en exécutant la commande suivante à partir d'une ligne de commande élevée:
Ensuite, j'ai réactivé Hyper-V (Docker peut être réinstallé si nécessaire) et redémarré l'ordinateur à nouveau.
Hyper-V réservait désormais ses ports sans interférer avec le port utilisé par mon application: Plages de ports réservés
la source
J'ai eu le même problème. Je viens de redémarrer Visual Studio et cela a fonctionné.
la source
J'ai eu le même problème. Comme @Kautsky Lozano le mentionne ci-dessus, une autre application utilise ce port.
Donc [pour un système d'exploitation Windows] simplement:
la source
J'ai rencontré le même problème après avoir mis à niveau une solution de Visual Studio 2012 à 2015. J'étais venu ici et j'ai couru
netstat
uniquement pour constater qu'aucune autre application n'utilisait les mêmes ports. Il s'avère que j'avais les mêmes sites avec les mêmes ports mappés dansapplicationhost.config
atUsers/<username>/Documents/IISExpress/config
etapplicationhost.config
dans le.vs
dossier à l'intérieur de ma solution. Je dois noter que le problème n'a pas commencé juste après la mise à niveau. Cela commence juste à échouer systématiquement un matin. Quelques redémarrages ne semblent pas non plus résoudre le problème.La suppression des sites en conflit de celui stocké dans mes documents et le redémarrage de Visual Studio ont résolu le problème.
la source
applicationhost.config
est dans le.vs\config
dossier sous votre dossier de solution.Si netstat ne montre rien qui utilise déjà le port
netstat -ano | findstr <your port number>
Le port peut être exclu, essayez cette commande pour voir si la plage est bloquée par autre chose:
netsh interface ipv4 show excludedportrange protocol=tcp
Vous pouvez essayer de débloquer la plage du port de démarrage pour un certain nombre de ports (nécessite l'invite de commande avec l'administrateur):
netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>
Pour moi, je ne pouvais pas les débloquer, je viens de recevoir "Accès refusé", donc j'ai fini par devoir choisir un autre port pour mon site.
la source
Une autre application utilise ce port. Cela pourrait vous aider
la source
J'ai juste eu ce problème même si netstat n'a montré aucun conflit.
Ce qui suit l'a corrigé pour moi:
la source
Après la mise à jour de Windows 10 et / ou Visual Studio 16+, cela peut se produire en raison d'un bogue interne qu'IISExpress ne parvient plus à enregistrer de site Web de développement car il n'accepte plus
localhost
connexions.Pour résoudre le problème, il vous suffit de réenregistrer la liaison. Pour ce faire, exécutez à partir d'un shell administratif la commande suivante:
la source
J'ai eu ce problème lors de la mise à niveau d'un projet MVC . J'ai copié le plus récent-MVC .csproj sur mon fichier .csproj existant, puis je suis revenu à un projet pleinement opérationnel. Ce que je n'ai pas pris en compte, c'est le numéro de port existant dans l'ancien .csproj. Le nouveau projet avait un nouveau numéro de port, mais partageait le nom du projet / de l'assemblage. Cela a suffi à faire perdre la tête à IIS Express et à lever cette exception.
Il suffisait d'extraire l'ancien numéro de port de git et de modifier l'URL IIS Express pour l'inclure dans les paramètres du projet pour le corriger.
la source
La première étape la plus simple sans entrer dans la console de commande consiste simplement à fermer toutes les applications (y compris VS), puis à lancer VS par lui-même et à réessayer. Il y a probablement une autre application comme votre navigateur à l'origine du conflit. Dans mon cas, Chrome l'a causé et a été résolu lors de l'arrêt de tout et du redémarrage de VS. J'ai rouvert Chrome et tout allait bien.
Le truc netstat ci-dessus est utile, mais pour moi c'est seulement si vous ne pouvez pas faire ce que je suggère.
la source
pour résumer toutes les réponses. Il existe 2 solutions. Les deux ont fonctionné pour moi. - Solution n ° 1 Tuez l'application qui utilise le même port. - Solution n ° 2 Configurez IIS Express pour utiliser un port différent pour votre projet.
Solution n ° 1 (en supposant que le port dans le message d'erreur était 443) Exécutez dans la ligne de commande:
il renvoie:
TCP 0.0.0.0:443 pe01:0 LISTENING 2904
Le dernier numéro (grâce à @ chris-schiffhauer) est le PID à tuer. Allez dans le Gestionnaire des tâches -> Processus -> [Afficher les processus de tous les utilisateurs], Tuez un processus avec PID = 2904. Dans mon cas, c'était l'hôte VmWare.Solution n ° 2 (Supposons que le message était: Impossible d'enregistrer l'URL " http: // localhost: 433 / " pour le site "MyProject.Website0" ... ). Ouvrez le fichier suivant dans notepad ++:
C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.config
Trouvez-y une ligne contenant:Changez
433
pour quelque chose d'autre, comme4330
ou supprimez la<binding.../>
balise en conflit .la source
Dans mon cas, faire ce qui suit a fait l'affaire:
Lorsque j'ai redémarré Visual Studio, il a attribué au projet un tout nouveau numéro de port et s'est parfaitement déroulé
la source
Les numéros de port ne correspondent pas
Dans mon cas, le problème était dans mes balises de liaison trouvées dans le fichier de configuration en .vs sous mon dossier de solution, les numéros de port ne correspondaient pas. Les fixations étaient les suivantes
Et dans mes paramètres, j'avais l'URL définie comme
http://localhost:1943/
Donc, ce que j'ai fait a été de supprimer la liaison interne et d'exécuter mon application Web, puis elle a généré une nouvelle liaison avec un numéro différent, puis j'ai copié le nouveau port généré dans mes paramètres, puis l'erreur a disparu.
la source
Allez dans Propriétés du projet Web >> Web >> URL du projet >> Changer de port ie: http: // localhost: 22345 / => http: // localhost: 22346 / J'espère que cette aide!
la source
J'ai pu résoudre ce problème en supprimant tout ce qui
<site>
concerne les</site>
balises dansUsers/<username>/Documents/IISExpress/config/applicatiohost.config
fichierla source
Ayant juste perdu une demi-journée à essayer de résoudre ce même problème, j'ai senti que je devais ajouter la solution qui a finalement fonctionné pour moi.
TL; DR Si
netstat
indique que le problème n'est pas utilisé, essayez toujours quelques autres dans une gamme totalement différenteJ'ai déjà rencontré ce problème, mais je trouve généralement que le redémarrage de Visual Studio, la modification des ports (incrémentation de 1) ou le redémarrage font l'affaire. Cependant, à cette occasion, rien de tout cela n'a aidé et
netstat
n'a pas trouvé de processus contradictoire. J'ai même réinstallé IIS et Visual Studio et supprimé plusieurs autres programmes dont je soupçonnais qu'ils pouvaient interférer. Il semblait qu'IIS essayait de lancer plusieurs instances du même site.Finalement, j'ai essayé de courir
netstat
sansfindstr
. J'ai scanné visuellement la liste des ports actifs et j'ai remarqué que bien que ceux que j'avais essayés ne soient pas répertoriés, il y avait quelques processus utilisant des ports dans une plage similaire. Au lieu de cela, j'ai cherché une plage qui était libre, j'ai choisi un numéro de port et qui semble maintenant fonctionner.J'aimerais savoir si quelqu'un peut expliquer pourquoi cela a pu fonctionner
la source
J'ai rencontré ce problème dans Visual Studio 2019 aujourd'hui et j'ai passé 3 heures avant de finalement comprendre le problème. Visual Studio utilise 2 fichiers pour suivre le numéro de port SSL, vous devez donc corriger les deux et vous devez réparer les deux lorsque Visual Studio est fermé. Les deux fichiers sont le fichier applicationhost.config qui se trouve dans le dossier .vs \ ??? \ config de votre solution; ainsi que le dossier .csproj.user de votre projet Web. Modifiez les deux fichiers et supprimez les configurations incriminées. Peut-être même simplement supprimer les deux fichiers. Ensuite, rouvrez votre application dans Visual Studio. Bonne chance!
la source
Cela a fonctionné pour moi.
la source
J'ai suivi les instructions de @ Zoti et utilisé Resource Monitor pour trouver le port en question.
Il s'avère qu'Outlook s'est vu attribuer au hasard le port de son canal de communication. La morale de l'histoire étant, cela pourrait être absolument n'importe quoi.
la source
La raison de cette erreur est que vous donnez le mauvais numéro de port à votre application.
utilisez le port à proximité du numéro 8080, c'est-à-dire:
pour changer le port de votre application dans Visual-Studio
la source
J'ai déjà essayé ce qui suit:
J'ai également essayé d'utiliser ceci mais aucun résultat.
netstat -aon | trouver ": 80"
J'ai également essayé d'utiliser mais aussi de renvoyer aucun résultat.
netstat -ao | findstr
Donc, ce que j'ai fait est de supprimer ce " Microsoft.VsHub.Server.HttpHostx64.exe " puis mon projet a démarré et lancé avec succès dans le navigateur. L'erreur a été corrigée. Je ne sais pas pourquoi mais cela fonctionne.
Voici la capture d'écran:
la source
J'ai eu le même problème mais il a été résolu lorsque j'ai redémarré en utilisant les privilèges d'administrateur. (Peut-être juste le redémarrage)
la source
J'ai eu le même problème aujourd'hui et rien de ce que j'ai trouvé sur Internet n'a fonctionné. J'utilise le port 2057 depuis des années, mais du coup ça ne fonctionnait plus. Le changer en un autre nombre bas comme 2058 a donné le même message d'erreur, mais quand je l'ai changé en 20057, tout a fonctionné à nouveau. Peut-être que quelque chose a changé avec la façon dont les numéros de port inférieurs sont traités.
la source