Apache2.2(OS 64)指定的網絡名不再可用的處理

     昨天收到一個客戶方電話求助,說是內網網站訪問慢,log裏刷新的日誌爲:[warn] (OS 64)指定的網絡名不再可用. : winnt_accept: Asynchronous AcceptEx failed.

       客戶現場環境爲windows2003操作系統,apache版本2.2.24。

    經在apache2.2官方文檔上面查找windows apache使用的多道處理模塊mpm_winnt_module下有一個對應的指令Win32DisableAcceptEx 指令,可以用來處理這個問題。

AcceptEx()是Microsoft WinSock v2 API,accept()在某些情況下,與使用BSD樣式API 相比,它提供了一些性能改進 。一些流行的Windows產品(通常是病毒掃描或虛擬專用網絡包)存在干擾正常操作的錯誤 AcceptEx()。如果遇到錯誤情況,例如:

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

你應該使用這個指令來禁用它 AcceptEx()。

     官方鏈接地址:http://httpd.apache.org/docs/2.2/mod/mpm_winnt.html

     具體處理辦法爲:

在httpd.conf文件中添加 Win32DisableAcceptEx 標記,如下: 
<IfModule mpm_winnt.c> 
ThreadsPerChild 150 
MaxRequestsPerChild 10000 
Win32DisableAcceptEx 
</IfModule>

或者

在conf/extra中編輯httpd-mpm.conf
<IfModule mpm_winnt_module>
    ThreadsPerChild      150
    MaxRequestsPerChild    10000 
    Win32DisableAcceptEx
</IfModule>

    重啓apache即可,問題解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章