445 Stimmen

Port 80 wird von SYSTEM (PID 4) verwendet, was ist das?

Ich versuche, Port 80 für meinen Anwendungsserver zu verwenden, aber wenn ich die netstat -aon Ich verstehe:

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4

Wenn ich mir den Prozess im Task-Manager ansehe, zeigt er PID 4 es SYSTEM , das war's. Keine Erweiterung... nichts. Nur " SYSTEM ". Was ist denn hier los?

Ich habe Angst, diesen Prozess zu beenden, was soll ich tun?

21voto

seizu Punkte 439

Ein weiterer Dienst, der den Port 80 belegen könnte, ist BranchCache

services.msc Anzeige als "BranchCache"

oder verwenden Sie die net Befehl zum Beenden des Dienstes wie

net stop PeerDistSvc

Aktualisierung:

PeerDistSvc ist ein Dienst hinter svhost.exe, um svchost-Dienste anzuzeigen, geben Sie

tasklist /svc /fi "imagename eq svchost.exe"

15voto

Hammad Khan Punkte 15166

Die Frage ist, wie man sie freimacht, indem man einfach

net stop http

https://stackoverflow.com/a/16243333/777982

10voto

isJustMe Punkte 5364

Ich wusste, dass diese Antworten richtig waren, aber meine services.msc zeigte die Dienste nicht an, aber dies hat den Trick gemacht:

sc stop "MsDepSvc" 
sc config "MsDepSvc" start= disabled

8voto

PhoenixPan Punkte 486

netsh http show urlacl

Der Befehl wurde bereits in einem früheren Kommentar erwähnt, aber ich möchte ihn noch einmal als Antwort anführen. Er liefert Ihnen alle reservierten URLs im System. Wenn Sie alle Datensätze mit "80" in der URL durchsehen, haben Sie Ihre Antwort.

In meinem Fall habe ich zum Beispiel:

Reserved URL: http://+:80/Temporary_Listen_Addresses/
        User: \Everyone
            Listen: Yes
            Delegate: No
            SDDL: D:(A;;GX;;;WD)

Reserved URL: http://+:80/0131501b-d67f-491b-9a40-c4bf27bcb4d4/
        User: NT AUTHORITY\NETWORK SERVICE
            Listen: Yes
            Delegate: No
            SDDL: D:(A;;GX;;;NS)

Nach einer kurzen Google-Suche erfuhr ich, dass "NT AUTHORITY \NETWORK SERVICE" gehört zu SQL Server. Also ging ich zu Dienste und stoppte SQL Server Reporting Service, Port 80 ist wieder frei, wie ich prüfe netstat -a -b

6voto

FSCKur Punkte 551

Identifizieren Sie den Prozess programmatisch

Bei allen bisherigen Antworten musste der Benutzer etwas Interaktives tun. So finden Sie die PID, wenn netstat Ihnen PID 4 anzeigt, ohne dass Sie eine grafische Benutzeroberfläche öffnen oder einen Dialog über abhängige Dienste führen müssen.

$Uri = "http://127.0.0.1:8989"    # for example

# Shows processes that have registered URLs with HTTP.sys
$QueueText = netsh http show servicestate view=requestq verbose=yes | Out-String

# Break into text chunks; discard the header
$Queues    = $QueueText -split '(?<=\n)(?=Request queue name)' | Select-Object -Skip 1

# Find the chunk for the request queue listening on your URI
$Queue     = @($Queues) -match [regex]::Escape($Uri -replace '/$')

if ($Queue.Count -eq 1)
{
    # Will be null if could not pick out exactly one PID
    $ProcessId = [string]$Queue -replace '(?s).*Process IDs:\s+' -replace '(?s)\s.*' -as [int]

    if ($ProcessId)
    {
        Write-Verbose "Identified process $ProcessId as the HTTP listener. Killing..."
        Stop-Process -Id $ProcessId -Confirm
    }
}

Das hat mich wirklich umgehauen. Ich hasse HttpListener und wünschte, ich hätte gerade Pode verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X