it-swarm.com.de

Wie löst man IIS Problem im visuellen Studio?

Ich habe versucht, meinen Webdienst über Visual Studio zu betreiben. Ich hatte ein 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 von System verwendet wird und seine Beschreibung NT Kernel & System.So ist. Ich habe versucht, den http service..__ anzuhalten. Alle Abhängigkeitsdienste wurden angehalten. Aber ich stehe vor einem Problem beim Stoppen des http-Dienstes 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 wäre hilfreich, wenn jemand bei diesem Problem helfen könnte

58
Priya

Von https://www.davidsalter.co.uk/unable-to-launch-the-iisexpress-web-server-error-0x80070020/

Der Fehlercode 0x80070020 bedeutet ERROR_SHARING_VIOLATION, was im Fall von IIS Express (oder IIS) bedeutet, dass der Port, den er abhören möchte, von einem anderen Prozess verwendet wird.

Verwenden Sie den Befehl netstat, um herauszufinden, welche Anwendung den Port verwendet.

netstat -ao | findstr <port_number_to_search_for>

Der Parameter a weist netstat an, alle Verbindungen und Abhörports anzuzeigen.

Der Parameter o weist netstat an, die der Verbindung zugeordnete Prozess-ID anzuzeigen.

Wenn Sie den obigen Befehl netstat ausführen, wird folgende Ausgabe erzeugt:

C:\>netstat -ao | findstr 4026
TCP    12.0.0.1:4026        cs-pc:4026         LISTENING       9544

Die letzte angezeigte Zahl (hier 9544) ist die Prozess-ID.

91

Ich hatte das gleiche Problem. Ich habe gerade Visual Studio neu gestartet und es hat funktioniert.

20
MusicAndCode

Ich hatte das gleiche Problem. @Kautsky Lozano erwähnt oben Eine andere Anwendung verwendet diesen Port.

Also [für ein Windows-Betriebssystem] einfach:

  • Ressourcenmonitor öffnen (Task-Manager -> Leistung -> Ressourcenmonitor öffnen)
  • Klicken Sie auf die Registerkarte Network .
  • Und bei TCP Connections find die Anwendung, die den lokalen Port verwendet, den IIS Express verwendet, und schließen Sie ihn. (es war Firefox in meinem Fall)
15
Zoti

Ich hatte das gleiche Problem, nachdem wir eine Lösung von Visual Studio 2012 auf 2015 aktualisiert hatten. Ich war hierher gekommen und netstat gestartet, nur um festzustellen, dass keine andere Anwendung die gleichen Ports verwendete. Es stellte sich heraus, dass ich dieselben Sites mit den gleichen Ports im applicationhost.config um Users/<username>/Documents/IISExpress/config und applicationhost.config im .vs-Ordner in meiner Projektmappe zugeordnet hatte. Ich sollte beachten, dass das Problem auch nicht direkt nach dem Upgrade begann. Es fängt einfach an, eines Morgens konstant zu versagen. Ein paar Neustarts schienen das Problem auch nicht zu lösen.

Durch das Entfernen der konfliktierten Sites aus den in meinen Dokumenten gespeicherten und das Neustarten von Visual Studio wurde das Problem behoben.

9

Der einfachste erste Schritt, ohne in die Befehlskonsole zu gelangen, ist, alle Anwendungen (einschließlich VS) herunterzufahren, VS 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, wenn Sie alles herunterfahren und VS neu starten. Ich habe Chrome wieder geöffnet und alles war gut.

Das oben genannte Netstat-Zeug ist nützlich, aber für mich ist das nur, wenn Sie nicht tun können, was ich vorschlage.

2
singleTrackVale

Eine andere Anwendung verwendet diesen Port. Das könnte dir helfen

2
Kautsky Lozano

alle Antworten zusammenfassen. Es gibt 2 Lösungen. Beide haben für mich gearbeitet . - Solution # 1 Beenden Sie die App, die denselben Port verwendet . - Solution # 2 Konfigurieren Sie IIS Express so, dass ein anderer Port für Ihr Projekt verwendet wird.

Lösung # 1 (Angenommen, der Port in der Fehlermeldung war 443) Führen Sie die Befehlszeile aus:

netstat -ao | findstr 443

es gibt zurück: TCP 0.0.0.0:443 pe01:0 LISTENING 2904 Die letzte Zahl (dank @ chris-schiffhauer) ist die PID zum Töten. Gehen Sie zum Task-Manager -> Prozesse -> [Prozesse von allen Benutzern anzeigen], und beenden Sie den Prozess mit der PID = 2904. In meinem Fall war es VmWare Host.

Lösung # 2 (Angenommen, die Nachricht lautete: URL konnte nicht registriert werden " http: // localhost: 433/ " für Site "MyProject.Website0" ...) . Öffnen Sie die folgende Datei in NOTEPAD ++: C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.config Suchen Sie darin eine Zeile, die Folgendes enthält:

<site name="MyProject.Website0" id="...
...
            <bindings>
                <binding protocol="http" bindingInformation="*:80:localhost" />
                <binding protocol="https" bindingInformation="*:443:localhost" />
            </bindings>

Ändern Sie entweder 433 in etwas anderes, wie 4330, oder löschen Sie das in Konflikt stehende <binding.../>-Tag.

2
epox

Ich hatte dieses Problem beim Upgrade eines MVC-Projekts . Ich kopierte die neuere MVC-Datei .csproj über meine vorhandene .csproj-Datei und arbeitete dann wieder an einem voll funktionsfähigen Projekt. Was ich nicht berücksichtigen konnte, ist die vorhandene Portnummer in der alten .csproj. Das neue Projekt hatte eine neue Portnummer, teilte jedoch den Projekt-/Assemblynamen. Das war genug, um IIS - Express den Verstand zu verlieren und diese Ausnahme auszulösen.

Es genügte, die alte Portnummer aus git zu holen und die IIS Express-URL so zu ändern, dass sie in die Projekteinstellungen aufgenommen wurde.

1
Chris Moschini

Gehen Sie zu Web ProjectProperties >> Web >> Projekt-URL >> Ändern Sie Portie: http: // localhost: 22345/ => http: // localhost: 22346/ Ich hoffe das hilft!

1
binhtruong.it

Ich hatte gerade dieses Problem, obwohl netstat keine Konflikte zeigte.

Folgendes hat es für mich behoben:

  1. Schließen Sie Visual Studio
  2. Öffnen Sie den Datei-Explorer
  3. Navigieren Sie zum Ordner des betreffenden Projekts
  4. Löschen Sie die Ordner obj und bin
  5. Löschen Sie die * .user Datei (dies ist wahrscheinlich optional)
  6. Starten Sie Visual Studio neu und versuchen Sie es erneut
1
AaronK

In meinem Fall hat das Folgende den Trick bewirkt:

  • Löschen Sie die Site aus der Datei .vs \\ config\applicationhost.config
  • Löschen Sie die Site aus Documents\IISExpress\config\applicationhost.config
  • Löschen Sie das IISUrl aus dem .csproj

Beim Neustart von Visual Studio wurde dem Projekt eine völlig neue Portnummer zugewiesen und es lief einwandfrei

1
djeastm

Nachdem ich gerade einen halben Tag damit verbracht hatte, das gleiche 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 anzeigt, dass das Problem nicht verwendet wird, versuchen Sie es mit einigen anderen in einem völlig anderen Bereich

Ich bin bereits auf dieses Problem gestoßen, finde aber normalerweise, dass ein Neustart von Visual Studio, ein Ändern der Ports (inkrementieren um 1) oder ein Neustart den Trick machen. Bei dieser Gelegenheit half jedoch nichts davon, und netstat fand keinen widersprüchlichen Prozess. Ich habe sogar IIS und Visual Studio neu installiert und mehrere 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 habe ich versucht, netstat ohne findstr auszuführen. Ich habe die Liste der aktiven Ports visuell gescannt und festgestellt, dass einige Prozesse Ports in einem ähnlichen Bereich verwenden, obwohl die von mir getesteten nicht aufgelistet waren. Also suchte ich stattdessen nach einem freien Bereich, wählte eine Portnummer und das scheint nun zu funktionieren.

Ich würde gerne hören, ob jemand erklären kann, warum dies möglicherweise funktioniert hat.

0
Phil

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

<bindings>
     <binding protocol="http" bindingInformation=":16433:localhost" />
</bindings>

Und in meinen Einstellungen hatte ich URL als http://localhost:1943/ eingestellt

Also, was ich getan habe, war, die innere Bindung zu löschen und meine Web-App auszuführen, dann eine neue Bindung mit einer anderen Nummer zu generieren, dann den neu generierten Port in meine Einstellungen zu kopieren und dann den Fehler zu beheben.

Ich habe schon folgendes ausprobiert:

  • Visual Studio neu gestartet
  • Überprüfen Sie alle verfügbaren Ports, die möglicherweise meine spezifische Nummer abhören, aber es werden immer null Ergebnisse zurückgegeben. In meinem Port hören keine Prozesse.
  • Ich habe auch versucht, dies zu verwenden, aber null Ergebnisse.

    netstat -aon | find ": 80"

  • Ich habe auch versucht, die Ergebnisse zu verwenden, aber auch null Ergebnisse zurückzugeben.

    netstat -ao | findstr 

Was ich also getan habe, ist das Löschen dieser "Microsoft.VsHub.Server.HttpHostx64.exe", dann wurde mein Projekt erfolgreich gestartet und im Browser gestartet. Der Fehler wurde behoben. Ich weiß nicht warum, aber es funktioniert.

Hier ist der Screenshot:

 enter image description here

0
Willy David Jr

Ich konnte dieses Problem beheben, indem ich alles von <site> bis </site>-Tags in entfernte

Users/<username>/Documents/IISExpress/config/applicatiohost.config datei

<sites>
  <site>
     .
     .   ===> remove this content including the <site> and </site> tags.
     .
  </site>
</sites>
0
nPcomp