今天把服务器重启了一下,结果网站过了三四个小时就不能访问了,去看了错误日志
事件类型: 错误
事件来源: Apache Service
事件种类: 无
事件 ID: 3299
日期: 2007-7-14
事件: 8:37:38
用户: N/A
计算机: JJLOU
描述:
The Apache service named reported the following error:
>>> [Sat Jul 14 08:37:38 2007] [notice]
Disabled use of AcceptEx() WinSock2 API .
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
是这个错误,查了很多资料,我已经把acceptE()关掉就可以了,先前也发生过这个问题,关掉就好了,结果现在又来了
感觉很奇怪,今天看了这边问题,试试看,能解决问题不? 以下文章的链接是:
http://hi.baidu.com/7655cjc/blog/item/1de9970e36d285e637d12272.html
查看文章
|
我的机器是windows server 2003 主要是用作开发用,除了apache 还装了很多其他软件;
首先一次重新启动后遇到了这个问题: taskmanager 里有两个httpd进程,其中一个占用cpu 很高 于是去查看event viewer 没有看到问题........... 去看error.log 果然问题出在这里,里面有好多个这样的错误,看来是陷入死循环了。 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. 于是我很开心的去网上查解决办法,去了几个国内论坛也去了几个国外的论坛,最先找到的解决办法都是: 解决方法: 在文件尾加入下面一行 Win32DisableAcceptEx 重启apache 可是我的问题就是还没有解决,以出现了新的问题
Fri Jun 01 10:15:27 2007] [notice] Apache/2.2.3 (Win32) PHP/5.1.4 configured -- resuming normal operations
就这样的不停重复。。。。。。。。。。。 于是继续找。。同时在http server 的文档上查了一下 Win32DisableAcceptEx 这个命令 同时找到下面两个可以说是建议吧: 一、 Udpsocket Wsa Error = 10038 首先这也是个10038错误,和winsock相关,我觉得可能有用就看了一下 问题是这样陈述的: HI, cAN ANYBODY HELP IN THE FOLLOWING ERROR: I STARTED MY SYS TODAY , AND IT SHOWED ME THE ERROR " UDPSOCKET" AND THEN IN ANOTHER DIALOGBOX IT SAID " WSA ERROR = 10038" NOW I M UNABLE TO CONNECT TO THE NETWORKING MACHINES AND NOR CAN I CONNECT TO THE INTERNET. CAN ANYBODY HELP IN THIS REGARD ? WD REALLY APPRECIATE THAT . IT'S PRETTY URGENT. REGARDS ARUN mlegg 给出了解决办法: If you have updated Windows and have SP2 (you should by now) Go to the Start button > to the Run box > type cmd and the command window opens now type: netsh winsock reset this will repair your corrupted Winsock if you do not have SP2 yet for some reason, then read this page from MS on how to repair your Winsock Afterwards go to Windows Updates and get everything you do not have yet. There has been a lot of updates and patches over the last few months. They come out the 2nd Tuesday of every month, but this month they were released early to fix a critical patch. 同时我也在 同时在http server 的文档上看到 Win32DisableAcceptEx (使用accept()代替AcceptEx()接受网络链接) 这个命令,有一个关于 AcceptEx()的介绍:
AcceptEx() 是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx() 的正确操作。如果你遇到类似于如下的错误:
你就需要使用这个指令来禁止使用 重新启动,问题解决 后记: 问题虽然解决了,但是从头到尾还没有完全搞清楚, 还有两个疑问:(1)还是不知道问题到底是怎么产生的,我以前就一真用Symantec AntiVirus,如果是因为它,为什么到现在才产生这个问题,如果说是由于更新病毒库的原因,我自己也不能说服我自己相信这个理由(2)如果是由于系统升级产生的问题那么为什么会产生这个问题?呵呵,饿了,先去吃饭,回来再解决之两个疑问 我又重新把 Symantec AntiVirus装起,呀,没有问题,不知道问题是怎么产生的了,就是 Symantec AntiVirus还没有更新病毒库呢,哈,学校的网络有点差,毕竟是教育网,怎样才让访问国外的网站速度快一点呢?.... 总这可以确定是winsock2 corrupted 了要用 netsh winsock reset 恢复而不是用Win32DisableAcceptEx 把 acceptex() 关掉 |