我试图为我的应用服务器使用端口80,但当我执行netstat -aon时,我得到:

TCP 0.0.0.0:80 0.0.0.0:0监听4

当我在任务管理器中查找进程时,它显示PID 4是SYSTEM,就是这样。没有扩展…什么都没有。“系统”。这是怎么回事?

我害怕结束这个过程,我该怎么办?


当前回答

以编程方式标识流程

到目前为止,所有的答案都要求用户进行一些交互操作。这就是当netstat显示PID 4时如何找到PID,而不需要打开一些GUI或处理有关依赖服务的对话。

$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
    }
}

那可真让我受不了。我讨厌HttpListener,希望我只使用Pode。

其他回答

对我来说,它在停止Web部署代理服务后工作了。

一个名为“Web部署代理服务”(MsDepSvc)的新服务也可以触发PID=4的“系统”在80端口上监听。

输入netstat -a -n -b -o |more

如果停止万维网出版服务有帮助的话

然后在IIS管理器中查看每个站点的绑定设置,通过选择一个站点并在侧面板上单击绑定。然后如果需要,将端口80更改为其他端口。

在windows的最新版本中,这项服务被称为“万维网发布服务”(W3SVC)。

C:\Windows\system32\svchost.exe -k iissvcs

您可以通过进入Services (Services .msc)并停止该服务,然后设置“启动类型”—>禁用,以防止它在windows启动时运行。

我今天才遇到这个问题,因为它出现在诺顿请求重启之后,我责怪诺顿。 但不是诺顿,我删除了诺顿,重新启动->问题仍然存在。

netstat -nao显示PID 4拥有我的端口80连接。

然后我进入控制面板, 然后“打开或关闭Windows功能” 然后勾选“互联网信息服务”。 重启后,问题就消失了。 我的xampp服务器现在运行正常。

我不记得我一开始是怎么打开IIS的。 这件事发生之前,我已经跑了好几个月了。 我还是不知道最初是什么引起的。 也许是之前的一个windows更新启用了iis,我的重启把它打开了,我不知道。