Ich habe versucht, meinen Webdienst über Visual Studio auszuführen. Ich stand vor einem Problem wie:
---------------------------
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
---------------------------
Ich habe den Task-Manager gesehen und festgestellt, dass PID 4 vom System verwendet wird und seine Beschreibung lautet. NT Kernel & System.
Also habe ich versucht, das zu stoppen http service
. Alle Abhängigkeitsdienste wurden gestoppt. Aber ich habe ein Problem beim Stoppen von http-Diensten wie
The service is starting or stopping. Please try again later.
Also habe ich versucht, den Dienst manuell zu stoppen und zu starten. Der End-Prozess ist jedoch deaktiviert. Es ist hilfreich, wenn jemand bei diesem Problem helfen kann
visual-studio
iis-express
Priya
quelle
quelle
Antworten:
Von https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/
Fehlercode
0x80070020
bedeutetERROR_SHARING_VIOLATION
, dass im Fall von IIS Express (oder IIS) der Port, den es abhören möchte, von einem anderen Prozess verwendet wird.Verwenden Sie den
netstat
Befehl, um herauszufinden, welche Anwendung den Port verwendet.Der
a
Parameter weist netstat an, alle Verbindungen und Überwachungsports anzuzeigen.Der
o
Parameter weist netstat an, die der Verbindung zugeordnete Prozess-ID anzuzeigen.Wenn Sie den obigen Befehl netstat ausführen, wird Folgendes ausgegeben:
Die zuletzt angezeigte Nummer (hier 9544) ist die Prozess-ID.
quelle
TASKKILL /PID 2756 /F
durch2756
Ihre Prozess-ID ersetzen-n
Switch erheblich beschleunigt werden - er verwendet eine "numerische" Ausgabe, was bedeutet, dass keine Zeit damit verschwendet wird, DNS abzufragen, um IP-Adressen in Hostnamen aufzulösen.Ich hatte ein ähnliches Problem beim Versuch, ein Projekt unter Visual Studio 2019 unter Windows 10 auszuführen. Die Anwendung konnte nicht gestartet werden, da der Port anscheinend von einem anderen Prozess verwendet wurde. Der
netstat
Befehl zeigte jedoch, dass der Port von keiner Anwendung verwendet wurde.Nachdem ich 2 Tage gegoogelt hatte, fand ich eine Lösung, die für mich funktionierte. Der Port, den ich verwenden wollte, befand sich im ausgeschlossenen Portbereich, den Sie durch Ausführen des Befehls sehen können:
Die Schuldigen, die diese Ports in meinem Fall reserviert haben, waren Docker für Windows und Hyper-V
Die Lösung
Ich habe Docker deinstalliert (da ich es nicht brauchte) und Hyper-V deaktiviert. So deaktivieren Sie Hyper-V: Gehen Sie zu: Systemsteuerung-> Programme und Funktionen-> Windows-Funktionen ein- oder ausschalten. Deaktivieren Sie Hyper-V und starten Sie den Computer neu.
Nach dem Neustart
netsh interface ipv4 show excludedportrange protocol=tcp
zeigte der Befehl keine reservierten Ports an.Anschließend habe ich den Port für meine Anwendung zum ausgeschlossenen Portbereich hinzugefügt, indem ich den folgenden Befehl über eine erhöhte Befehlszeile ausgeführt habe:
Dann habe ich Hyper-V wieder aktiviert (Docker kann bei Bedarf neu installiert werden) und den Computer neu gestartet.
Hyper-V hat jetzt seine Ports reserviert, ohne den von meiner Anwendung verwendeten Port zu beeinträchtigen: Reservierte Portbereiche
quelle
Ich hatte das gleiche Problem. Ich habe gerade Visual Studio neu gestartet und es hat funktioniert.
quelle
Ich hatte das gleiche Problem. Wie oben von @Kautsky Lozano erwähnt, verwendet eine andere Anwendung diesen Port.
Also [für ein Windows-Betriebssystem] nur:
quelle
Nachdem wir eine Lösung von Visual Studio 2012 auf 2015 aktualisiert hatten, stieß ich auf dasselbe Problem. Ich war hierher gekommen und hatte
netstat
nur festgestellt, dass keine andere Anwendung dieselben Ports verwendete. Es stellt sich heraus , dass ich die gleichen Seiten mit den gleichen Ports in den abgebildeten hatteapplicationhost.config
anUsers/<username>/Documents/IISExpress/config
und dieapplicationhost.config
im.vs
Ordner in meiner Lösung. Ich sollte beachten, dass das Problem auch nicht direkt nach dem Upgrade begann. Eines Morgens scheitert es immer wieder. Ein paar Neustarts schienen das Problem auch nicht zu lösen.Das Problem wurde behoben, indem die in Konflikt stehenden Sites von den in meinen Dokumenten gespeicherten Sites entfernt und Visual Studio neu gestartet wurden.
quelle
applicationhost.config
befindet sich im.vs\config
Ordner unter Ihrem Lösungsordner.Wenn netstat nichts anzeigt, das den Port bereits verwendet
netstat -ano | findstr <your port number>
Der Port ist möglicherweise ausgeschlossen. Versuchen Sie diesen Befehl, um festzustellen, ob der Bereich durch etwas anderes blockiert ist:
netsh interface ipv4 show excludedportrange protocol=tcp
Sie können versuchen, den Bereich für eine Reihe von Ports vom Startport freizugeben (erforderliche Eingabeaufforderung mit Administrator erforderlich):
netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>
Für mich konnte ich diese nicht entsperren. Ich habe nur "Zugriff verweigert" erhalten, sodass ich schließlich einen anderen Port für meine Site auswählen musste.
quelle
Eine andere Anwendung verwendet diesen Port. Dies könnte Ihnen helfen
quelle
Ich hatte gerade dieses Problem, obwohl netstat keine Konflikte zeigte.
Folgendes hat es für mich behoben:
quelle
Ich hatte dieses Problem beim Upgrade eines MVC-Projekts . Ich habe die neuere MVC-Datei .csproj über meine vorhandene .csproj-Datei kopiert und dann zu einem voll funktionsfähigen Projekt zurückgearbeitet. Was ich nicht berücksichtigt habe, ist die vorhandene Portnummer in der alten .csproj. Das neue Projekt hatte eine neue Portnummer, teilte jedoch den Projekt- / Baugruppennamen. Das war genug, um IIS Express aus den Augen zu verlieren und diese Ausnahme auszulösen.
Es reichte aus, nur die alte Portnummer aus Git herauszuholen und die IIS Express-URL so zu ändern, dass sie in die Projekteinstellungen aufgenommen wird, um das Problem zu beheben.
quelle
Der einfachste erste Schritt, ohne in die Befehlskonsole zu gelangen, besteht darin, einfach alle Anwendungen (einschließlich VS) herunterzufahren, VS dann selbst zu starten und es erneut zu versuchen. Es gibt wahrscheinlich eine andere Anwendung wie Ihren Browser, die den Konflikt verursacht. In meinem Fall hat Chrome dies verursacht und wurde behoben, als alles heruntergefahren und VS neu gestartet wurde. Ich habe Chrome wieder geöffnet und alles war in Ordnung.
Das obige Netstat-Zeug ist nützlich, aber für mich ist das nur, wenn Sie nicht tun können, was ich vorschlage.
quelle
um alle Antworten zusammenzufassen. Es gibt 2 Lösungen. Beide haben für mich gearbeitet. - Lösung 1 Beenden Sie die App, die denselben Port verwendet. - Lösung 2 Konfigurieren Sie IIS Express so, dass ein anderer Port für Ihr Projekt verwendet wird.
Lösung Nr. 1 (Angenommen, der Port in der Fehlermeldung war 443) Führen Sie in der Befehlszeile Folgendes aus:
es gibt zurück:
TCP 0.0.0.0:443 pe01:0 LISTENING 2904
Die letzte Zahl (dank @ chris-schiffhauer) ist PID to kill. Gehen Sie zum Task-Manager -> Prozesse -> [Prozesse von allen Benutzern anzeigen] und beenden Sie einen Prozess mit PID = 2904. In meinem Fall war es VmWare-Host.Lösung 2 (Angenommen, die Meldung lautete: Fehler beim Registrieren der URL " http: // localhost: 433 / " für die Site "MyProject.Website0" ... ). Öffnen Sie die folgende Datei in notatedpad ++:
C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.config
Suchen Sie darin eine Zeile mit:Wechseln Sie entweder
433
zu etwas anderem,4330
oder löschen Sie das widersprüchliche<binding.../>
Tag.quelle
In meinem Fall hat das Folgende den Trick getan:
Beim Neustart von Visual Studio wurde dem Projekt eine völlig neue Portnummer zugewiesen und es lief einwandfrei
quelle
Portnummern stimmen nicht überein
In meinem Fall lag das Problem in meinen Bindungs-Tags, die in der Konfigurationsdatei in .vs unter meinem Lösungsordner gefunden wurden. Die Portnummern stimmten nicht überein. Die Bindungen waren wie folgt
Und in meinen Einstellungen hatte ich URL eingestellt als
http://localhost:1943/
Also habe ich die innere Bindung gelöscht und meine Web-App ausgeführt. Dann wurde eine neue Bindung mit einer anderen Nummer generiert. Dann habe ich den neu generierten Port in meine Einstellungen kopiert. Dann ist der Fehler verschwunden.
quelle
Nach dem Update von Windows 10 und / oder Visual Studio 16+ kann es aufgrund eines internen Fehlers vorkommen, dass IISExpress keine Entwicklungswebsite registriert, da keine
localhost
Verbindungen mehr akzeptiert werden .Um das Problem zu beheben, müssen Sie nur die Bindung erneut registrieren. Führen Sie dazu in einer Verwaltungsshell den folgenden Befehl aus:
quelle
Gehen Sie zu Web-Projekteigenschaften >> Web >> Projekt-URL >> Port ändern, dh: http: // localhost: 22345 / => http: // localhost: 22346 / Hoffe diese Hilfe!
quelle
Ich konnte fix dieses Problem , indem sie alles aus dem Entfernen
<site>
zu</site>
Tags inUsers/<username>/Documents/IISExpress/config/applicatiohost.config
Dateiquelle
Nachdem ich gerade einen halben Tag damit verbracht hatte, dasselbe Problem zu beheben, hatte ich das Gefühl, ich sollte die Lösung hinzufügen, die schließlich für mich funktionierte.
TL; DR Wenn
netstat
angezeigt wird, dass das Problem nicht verwendet wird, versuchen Sie es dennoch mit einigen anderen in einem völlig anderen BereichIch bin bereits auf dieses Problem gestoßen, finde aber normalerweise einen Neustart von Visual Studio, das Ändern von Ports (Inkrementieren um 1) oder einen Neustart. Bei dieser Gelegenheit half jedoch nichts davon, und
netstat
wurde kein widersprüchlicher Prozess gefunden. Ich habe sogar IIS und Visual Studio neu installiert und einige andere Programme entfernt, von denen ich vermutete, dass sie stören könnten. Es schien, als würde IIS versuchen, mehrere Instanzen derselben Site zu starten.Schließlich versuchte ich
netstat
ohne zu laufenfindstr
. Ich habe die Liste der aktiven Ports visuell gescannt und festgestellt, dass die von mir getesteten Ports zwar nicht aufgelistet waren, es jedoch einige Prozesse gab, bei denen Ports in einem ähnlichen Bereich verwendet wurden. Also suchte ich stattdessen nach einem Bereich, der frei war, wählte eine Portnummer und das scheint jetzt zu funktionieren.Ich würde gerne hören, ob jemand erklären kann, warum dies funktioniert haben könnte.
quelle
Ich bin heute in Visual Studio 2019 auf dieses Problem gestoßen und habe 3 Stunden damit verbracht, das Problem endlich herauszufinden. Visual Studio verwendet zwei Dateien, um die SSL-Portnummer zu verfolgen. Sie müssen also beide und beide reparieren, während Visual Studio geschlossen ist. Die beiden Dateien sind die Datei applicationhost.config, die sich im Ordner .vs \ ??? \ config Ihrer Lösung befindet. und auch den Ordner .csproj.user Ihres Webprojekts. Bearbeiten Sie beide Dateien und entfernen Sie die fehlerhaften Konfigurationen. Vielleicht löschen Sie einfach beide Dateien. Öffnen Sie dann Ihre App erneut in Visual Studio. Viel Glück!
quelle
Es hat bei mir funktioniert.
quelle
Ich folgte den Anweisungen von @ Zoti und benutzte Resource Monitor, um den fraglichen Port zu finden.
Es stellte sich heraus, dass Outlook zufällig der Port für seinen Kommunikationskanal zugewiesen wurde. Die Moral der Geschichte ist, es könnte absolut alles sein.
quelle
Folgendes habe ich bereits versucht:
Ich habe auch versucht, dies zu verwenden, aber keine Ergebnisse.
netstat -aon | find ": 80"
Ich habe auch versucht, Ergebnisse zu verwenden, aber auch keine zurückzugeben.
netstat -ao | findstr
Also habe ich diese " Microsoft.VsHub.Server.HttpHostx64.exe " gelöscht " dann wurde mein Projekt erfolgreich gestartet und im Browser gestartet. Der Fehler wurde behoben. Ich bin nicht sicher warum, aber es funktioniert.
Hier ist der Screenshot:
quelle
Ich hatte das gleiche Problem, aber es wurde behoben, als ich mit Administratorrechten neu startete. (Könnte nur der Neustart gewesen sein)
quelle
Ich hatte heute das gleiche Problem und nichts, was ich im Internet gefunden habe, hat funktioniert. Ich benutze Port 2057 seit Jahren, aber plötzlich funktionierte es nicht mehr. Das Ändern auf eine andere niedrige Zahl wie 2058 gab dieselbe Fehlermeldung aus, aber als ich es auf 20057 änderte, funktionierte alles wieder. Vielleicht hat sich etwas an der Art und Weise geändert, wie mit den niedrigeren Portnummern umgegangen wird.
quelle
Grund für diesen Fehler ist, dass Sie Ihrer Anwendung die falsche Portnummer geben.
Verwenden Sie den Port in der Nähe der Nummer 8080, dh:
um den Port für Ihre Anwendung in Visual-Studio zu ändern
quelle