apache服务通常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive (转)

原文地址:www.myexception.cn/apache/802653.html

 

apache服务正常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive.

apache服务正常启动,但打不开网页,

apache日志如下:

Apache/2.2.21 (Win32) PHP/5.3.8 configured -- resuming normal operations
[Tue Oct 09 10:38:50 2012] [notice] Server built: Dec  1 2011 21:30:02
[Tue Oct 09 10:38:50 2012] [notice] Parent: Created child process 17580
[Tue Oct 09 10:38:51 2012] [notice] Child 17580: Child process is running
[Tue Oct 09 10:38:51 2012] [notice] Child 17580: Acquired the start mutex.
[Tue Oct 09 10:38:51 2012] [notice] Child 17580: Starting 250 worker threads.
[Tue Oct 09 10:38:51 2012] [notice] Child 17580: Starting thread to listen on port 8080.
[Tue Oct 09 10:38:51 2012] [error] (OS 10038)在一个非套接字上尝试了一个操作。  : Child 17580: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.
[Tue Oct 09 10:38:51 2012] [error] (OS 10038)在一个非套接字上尝试了一个操作。  : Child 17580: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.
[Tue Oct 09 10:38:51 2012] [error] (OS 10038)在一个非套接字上尝试了一个操作。  : Child 17580: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.

......

原因是Apache 的AcceptEx在window下会出现这种问题,只在APAche2.0.49以上版本会有这中问题。 《Apache 2_2 中文版参考手册》上说:“AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。如果你遇到类似于如下 的错误:一般的解决办法是关闭 AcceptEx()”。也就是说,可能是 Windows Update 或是防火墙、防毒软件更新了某些网络原件,造成 Microsoft WinSock v2 API 动作不正常,会干扰WinSock2 API,就会影响AcceptEx()的正确操作,就可能出现上面所出现的问题。但是关闭会影响Apache的性能。需要自己权衡利弊。因此如果没有什么 错误发生,最好还是不要随便关闭这个功能比较好吧。


在httpd.conf文件中添加Win32DisableAcceptEx 标记,


<IfModule mpm_winnt.c>
     ThreadsPerChild 1000
     MaxRequestsPerChild 10000
     Win32DisableAcceptEx
< /IfModule>



另一种解决办法,只要出现了AcceptEx 的问题,就能解决,具体设置为: 1、网上邻居-;本地连接-;属性-;internet协议(TCP/IP)-;属性-;高级-;wins标签-;去掉启用LMhosts查询前的勾. 2、控制面版-;windows防火墙-;高级标签-;本地连接设置-;服务的标签里勾选安全Web服务器(HTTPS)。 3、然后退出Apache,再打开启动就可以了


以上方案都试过,但是还不管用,
后来又查了下,试了下重置winsock就OK了


命令行中执行:netsh winsock reset

 

 

来源:http://roov.org/2013/12/apache-acceptex-failed/

Apache报错指定的网络名不再可用解决方案

 

 

 Apache问题。在查看error log之后发现有这么一行:“(OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed.”

翻阅了不少网络文章,大多数表示需要使用Win32DisableAcceptEx,但reizhi在尝试后未果。将全部调试步骤罗列如下,希望能够有所帮助。

系统环境:Windows  2003r2

Apache版本:2.4

1.打开httpd.conf,添加以下代码:

<IfModulempm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild   10000
Win32DisableAcceptEx
</IfModule>

2.将ThreadsPerChild选项从默认的250或者更多,降至170以下

ThreadsPerChild170

3.

网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾。

控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。 
4.在httpd.conf中添加以下代码

AcceptFilter http none 
AcceptFilter https none 
EnableSendfileOffEnableMMAP off

apache服务通常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive (转),布布扣,bubuko.com

apache服务通常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive (转)

上一篇:WAMP Server 和IIS 7如何在Windows中同时运行


下一篇:【WebAPI No.5】Core WebAPI中的自定义格式化