首页 > 代码库 > Apache服务停止:信号灯超时时间已到,指定的网络名不再可用

Apache服务停止:信号灯超时时间已到,指定的网络名不再可用

环境说明:Apache2.4.10,Windows Server 2008 R2

问题说明:

       apache服务用于下载文件,但是在运行一段时间后,突然挂了。

       其错误提示如下所示:

[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.

[error] (OS 10038) : Child 3356: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.

[warn] (OS 121)信号灯超时时间已到。 : winnt_accept: Asynchronous AcceptEx failed.

[warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.

解决办法:

       Apache官方提供的手册中提到,在Windows系统下Apache2.x为了提高性能而使用了Microsoft WinSock v2 API,但是一些常见的防火墙软件会破坏他的正确性,从而使得Apache出现死循环。

增加或修改httpd.conf配置:

            AcceptFilter http none
            AcceptFilter https none

            EnableMMAP off
            EnableSendfile off

通过上述的配置,再也没有出现过上述报错。

Apache服务停止:信号灯超时时间已到,指定的网络名不再可用