windows2003下apache的“指定的网络名不再可用。winnt_accept: Asynchronous AcceptEx failed.”的解决办法
这几天windows2003的apache习惯性的很慢。你会发现的你的机器没怎么动,就是apache一下子占了很多内存,不一会儿就不行了。必须重起机器。找了很多方向,甚至我认为机器的dns出问题了,但怎么也找不到点子上。仔细检查了下apache的日志在error.log里也报错:[warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
查了很多资料,原来是跟windows的服务冲突了,汗。
先上查到的解决办法:
在httpd.conf文件中添加 Win32DisableAcceptEx 标记,如下:
ThreadsPerChild 150
MaxRequestsPerChild 10000
Win32DisableAcceptEx
这样可以允许并发连接更大一些。同时性能上也不会有明显的降低。
如果还是不行,进行以下操作:
1、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的
勾.
2、控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。
3、然后退出Apache,再打开启动就可以了 ,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可
原因分析:
AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。我们需要禁止使用AcceptEx() 。


来顶了。博主在吗