Windows上的Apache未在服务停止时释放端口80,并且不会重新启动

Windows上的Apache未在服务停止时释放端口80,并且不会重新启动,apache,pid,Apache,Pid,当我尝试重新启动Apache时,它会抛出以下错误: ============================================ Apache 2 is starting ... (OS 10048)Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden. : make_sock: could not bi

当我尝试重新启动Apache时,它会抛出以下错误:

============================================
Apache 2 is starting ...
(OS 10048)Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden.
: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
=============================================
我使用netstat,发现保存端口80的PID与Apache以前使用的PID相同。此PID不会显示在任务管理器中,并且在尝试对其执行taskkill时找不到它

似乎Apache在某种程度上保留了退出时的端口。我可以重新启动Apache服务的唯一方法是每次更改侦听端口,或者重新启动服务器本身


以前有人遇到过这个问题吗?如果有,我能做些什么来解决它吗

如果这是一台windows机器,那么像apache这样的应用程序通常作为一种服务来使用

你可以把它关上

CMD+R->services.msc,搜索 然后按下“停止”

cmd->net stop apache

cmd->net stop apache2


如果这是一台windows机器,那么像apache这样的应用程序通常作为一种服务来使用

你可以把它关上

CMD+R->services.msc,搜索 然后按下“停止”

cmd->net stop apache

cmd->net stop apache2


应该是打开的。日志中是否有来自关机的内容?应该有“子进程成功退出”的效果。此外,您还可以使用
taskkill
命令终止进程
taskkill/F/PID 12345
将使用PID 12345强制终止进程。关机日志正好说明了这一点。子进程已成功退出。我试图强制终止进程,但是,它返回“找不到进程”。您是否知道是什么原因导致了这种情况?我遇到了相同的问题,但这次是aspnetcore Kestrel服务器。在重新启动之前,我无法将另一个应用程序绑定到它所使用的端口(没有进程,没有子进程正在运行,也没有任何程序正在积极侦听端口)。可能应该处于打开状态。关闭后的日志中是否有任何内容?应该有“子进程成功退出”的效果。此外,您还可以使用
taskkill
命令终止进程
taskkill/F/PID 12345
将使用PID 12345强制终止进程。关机日志正好说明了这一点。子进程已成功退出。我试图强制终止进程,但是,它返回“找不到进程”。您是否知道是什么原因导致了这种情况?我遇到了相同的问题,但这次是aspnetcore Kestrel服务器。在重新启动之前,我无法将另一个应用程序绑定到它所使用的端口(没有进程,没有子进程正在运行,也没有任何程序正在侦听端口)。尝试这三个选项中的任何一个都会导致问题发生。尝试这三个选项中的任何一个都会导致问题发生。