Wenn ich versuche, eine Site in IIS zu starten, heißt es:
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird
Ich habe in Google gesucht und festgestellt, dass möglicherweise eine andere Site Port 80 verwendet hat. In MyIIS wird jedoch festgestellt, dass nur diese Site Port 80 verwendet. Was könnte Port 80 sonst noch verwenden oder liegt ein anderes Problem vor?
IIS-W3SVC
undHttpEvent
Quelle protokolliert . Zweiter Ereignisprotokolltext -Unable to bind to the underlying transport for [::]:8080. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.
. Port 8080 wurde von einem Oracle-Dienst verwendet. Ich habe den von meiner Website verwendeten Port auf 8081 geändert.Antworten:
Überprüfen Sie mit
netstat -aon
odernetstat -aon | findstr 0.0:80
an einer Eingabeaufforderung, welche Prozess- ID auf Port: 80 HÖRT, und suchen Sie dann im Task-Manager nach dieser Prozess-ID (PID), wobei Ansicht-> Spalten auswählen-> Prozess-ID aktiviert ist . Beenden Sie diesen Vorgang, starten Sie IIS neu und Sie sind fertig. ( Hinweis: Wenn Sie Skype installiert haben, beenden Sie diesen Vorgang zuerst. )In einem modernen Task-Manager müssen Sie auf der Registerkarte Details nach der PID suchen. Wie von @Nikita G in den Kommentaren erwähnt, können Sie diesen Befehl verwenden, um die Aufgabe an Ihrer Eingabeaufforderung zu finden:
Hinweis: Ändern Sie
123
mit der vom ersten Befehl zurückgegebenen PID.quelle
netstat -aon | findstr 0.0:80
. Wenn Sie dann davon ausgehen, dass PID 123 zurückgegeben wird, führen Sie Folgendes aus, um festzustellen, um welchen Prozess es sich handelt :tasklist /FI "PID eq 123"
.OracleServiceXE
Dienst, der Port 8080 aufgefressen hatte, an den sich die neue Website in meinem IIIS-Server binden wollte.Dies geschieht, weil ein anderer Prozess Port 80 verwendet. Möglicherweise handelt es sich um eine Chat-Anwendung auf Ihrem PC wie Skype.
Ändern Sie zunächst den Standard-Website-Port, der 80 war, in einen nicht verwendeten Port (z. B. 8087). Um dies zu erreichen, klicken Sie mit der rechten Maustaste auf die Anwendung und dann auf "Bindung bearbeiten".
Nach diesem Portwechsel starten Sie erneut. Jetzt können Sie feststellen, welcher Prozess den IIS-Port 80 blockiert. Um dies zu überprüfen, verwenden Sie den Befehl netstat, der die Details des Ports zusammen mit der Prozess-ID anzeigt.
quelle
Melden Sie sich bei Skype ab und versuchen Sie es erneut. Ich habe das gleiche Problem festgestellt und mich gerade von Skype abgemeldet und dann meinen IIS zurückgesetzt. Es hat bei mir funktioniert.
quelle
Sie können diesen Befehl auch ausführen, um herauszufinden, welche Anwendung oder welcher Dienst den Port verwendet, und ihn dann im Task-Manager nachverfolgen (sofern es sich nicht um den Web Deploy Agent-Dienst handelt).
netstat -o -n -a | findstr 0.0: 80
Öffnen Sie dann den Task-Manager, gehen Sie zu Prozesse, aktivieren Sie das Kontrollkästchen "Prozesse für alle Benutzer anzeigen" und klicken Sie dann auf das Menü "Ansicht". Fügen Sie zu den Spalten die Spalte "PID" hinzu.
Ordnen Sie die Prozess-ID aus dem Befehl netstat der PID im Task-Manager zu, und Sie finden den Dienst oder die Anwendung, die den Port verwendet.
quelle
tasklist /FI "PID eq <PID from netstat (without brackets)>"
.Wie andere bereits gesagt haben, verwendet möglicherweise etwas anderes Port 80 oder 443. Es war VMWare Workstation Server für mich, aber überprüfen Sie andere Antworten auf die Verwendung von netstat.
quelle
netstat
nach Port 80 gesucht und nichts angezeigt. Dann haben Sie Port 443 erwähnt und da war es.Ich denke, dieser Link bietet eine ziemlich gute Erklärung und Behebung dieses Problems http://support.microsoft.com/KB/890015
Meistens; Dies wird aus einem der beiden Gründe verursacht: 1) Port 80 wird von etwas anderem verwendet, und wie von anderen vorgeschlagen, können Sie netstat -o -n -a | findstr 0.0: 80 verwenden, um festzustellen, ob dies der Fall ist. Wenn ja, beenden Sie den Prozess über den Task-Manager (aktivieren Sie das Kontrollkästchen Prozesse aller Benutzer anzeigen).
2) Wenn Port 80 nicht verwendet wird, ist die zweite Ursache möglicherweise eine ungültige IP-Adresse in der ListenOnlyList, die im Registrierungsschlüssel von HTTP-> Parameters abgelegt ist. Wenn Sie dem Link folgen, um den Schlüssel manuell festzulegen, oder tatsächlich (xp und Server 2003)
httpcfg delete iplisten -i ipaddress
, um die ungültige IP-Adresse zu löschen. Sie müssen die http neu starten, sobald Sie die IP-Adresse bearbeiten!quelle
In meinem Fall war es der " Sync Share Service " (SyncShareSvc), der ausgeführt wurde und Port 80 verwendete. Netstat zeigte jedoch 80 als kostenlos an. Ich könnte die Site auf einem anderen Port ausführen lassen, aber nicht auf 80. Wenn ich einen Hostnamen hinzufügen würde, würde IIS mir erlauben, die Site zu starten, aber ich würde zur Digest-Authentifizierung aufgefordert, wenn ich zu localhost (oder einem beliebigen Hostnamen I) navigiere hinzugefügt). In IIS wurden nur Anonym und Formularauthentifizierung aktiviert ...
Ich stellte außerdem fest, dass ich nach dem Stoppen von IIS
http://localhost
immer noch zur Digest-Authentifizierung aufgefordert wurde.In meinem Fall bestand die Lösung darin, Datei- und Speicherdienste> Dateien und iSCSI-Dienste> " Arbeitsordner " aus den installierten Diensten zu entfernen (Neustart erforderlich).
Nach dem Entfernen des Dienstes "Arbeitsordner" und dem Neustart funktionierte IIS wie erwartet.
quelle
Mein Fall war, dass nach der Installation von RD Web Access die ursprünglichen Standardwebsites nicht gestartet werden konnten. Die RD Web Access-Rolle wurde immer noch entfernt. Die Bindung von Port 443 wurde entfernt, um das Problem zu beheben.
quelle
Die meisten Fälle, in denen dies von Webentwicklern geschieht, sind der Grund für Apache. Wenn Sie also von Apache aus zur Konfigurationsdatei gehen! Öffne es und suche mit Strg + F bis 80 und ändere die IP, die du sehen wirst, auf 8080 und den Satz darunter mit 80 bis 8080 und du musst das in deinem xampp oder dem Programm, das du gerade verwendest, bestätigen
Hoffe ich helfe euch
quelle
Um aussagekräftigere Informationen zu erhalten, besteht eine Möglichkeit darin, bei der Ausgabe auch Eigentumsinformationen abzurufen,
netstat
damit Sie den Prozess kennen, der entweder 80 (Standard-http-Bindung) oder 443 (wenn https-Bindung definiert ist) verwendet:In meinem Fall war der Schuldige vmware:
netstat kann in find geleitet werden, um nach den Ports 80 oder 443 zu suchen (z. B.
find ":443"
), aber diese bestimmte aktive Verbindung wird am Anfang der Liste angezeigt , wenn sie leicht zu sehen ist.quelle