一、問題描述
以前一直正常的網站今天出現了打不開的情況,網站是部署在IIS下的。通過查找IIS的日志文件“Httperr.log”信息,顯示“Connections_Refused”
二、解決方案
在網上搜索了相關資料,默認情況下,如果可用的非分頁緩沖池內存不足 20MB,IIS 6.0 中的 HTTP 服務停止接受連接,所以有以下兩種方案供選擇
1、重啟服務器釋放內存
2、采用微軟官方解決辦法為在注冊表里把 EnableAggressiveMemoryUsage 值設為1解決。具體操作方法如下
1.1、進入注冊表,進入具體項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
1.2、新建dword值,輸入名稱“EnableAggressiveMemoryUsage”
1.3、修改值為1.
1.4、開始-運行,輸入CMD。進入CMD窗口。
1.5、執行:net stop http /y
1.6、執行:iisreset /restart
其它的解決方案:
1.前段時間我的web服務器也有類似的問題,搞了半天也沒有搞好,后來安裝最新的sp+所有新補丁就好了 (不可取)
2.IIS應用程序池設置不合理造成的
首先訪問量大的站點要單獨自己一個應用程序池
其次應用程序池屬性的參數設置注意一下幾點
回收中僅設置指定時間回收
性能中去掉請求隊列限制的勾
運行狀況里去掉啟用快速失敗保護的勾,關閉時間限制設置到180秒以上
標識中預定義賬戶改為本地系統 (優先考慮這個方案)
3.連接數超過了限制。
使用NET STOP W3SVC停止然后再NET START W3SVC試試。
此外,修改連接池中的連接數量。
還有,重新設定ASP中SESSION的超時,使IIS能較快地釋放無效資源和連接。 (建議默認120)
4.檢查程序,是否有死循環,資源沒有是否(如:數據庫連接沒有close, 非托管代碼(c/c++ DLL)沒有釋放)
5.根據系統事件日志,查看“應用程序” 和 “系統” 中是否有IIS相關的錯誤