0

我有一个用 React 编写的 WEB 应用程序,每当我尝试用react-app-rewired start它运行它时都会抱怨Something is already running on port XYZ.

我检查了是否有任何进程正在监听端口 XYZ netstat -a -b,但没有。此外,如果我将端口 XYZ 更改为任何 4 位值(使用环境变量PORT=3001),我总是会遇到同样的问题,即端口已经被占用,所以我得出的结论是端口没有被占用,但有些事情正在发生在下面。我在安装了节点 12 的 Windows 10 上运行(我尝试降级到节点 10,因为我认为这曾经在较低节点版本上对我有用,但我无法再让它工作了)。

我在网上搜索过,他们中的大多数人建议检查端口是否被占用,我发现其他很少有人在下面但对我不起作用:

有没有人遇到过类似的问题并且能够解决它们?

4

2 回答 2

2

事实证明是Hyper-V 占用了所有端口....禁用 Hyper-V 后,我能够在端口 3000 上运行节点应用程序。

此问题的解决方法是在 Hyper-V 关闭时保留端口:

  1. 禁用 hyper-v(这将需要重新启动几次)

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

  1. 当你完成所有必需的重启后,保留你想要的端口,这样 hyper-v 就不会保留它

netsh int ipv4 add excludedportrange protocol=tcp startport=3000 numberofports=1

  1. 重新启用 hyper-V(需要重启几次)

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

参考:

于 2020-02-25T15:07:09.977 回答
-1

尝试:

taskkill /im node.exe

如果进程仍然存在,您可以通过添加 /f 标志来强制终止进程:

taskkill /f /im node.exe
于 2020-02-08T07:01:54.317 回答