關(guān)于風(fēng)訊系統(tǒng)踢人的一些分析_風(fēng)訊Cms教程
由于本人一直未碰到這個問題,今晚在給"火星菜鳥"分析時,得出一些結(jié)論,以提供給需要這方面資料的朋友們.
首先,系統(tǒng)頻繁踢人不是程序問題,至少我在分析代碼的過程中沒發(fā)現(xiàn).出現(xiàn)這種情況的大多數(shù)是把風(fēng)訊系統(tǒng)放到了虛擬主機上,空間提供商為了顧全自身服務(wù)器的安全運作,在一些設(shè)置上采取保護措施.比如對"應(yīng)用程序池"實行限時回收.經(jīng)過跟蹤測試我發(fā)現(xiàn),登陸風(fēng)訊系統(tǒng)后默認(rèn)情況下可以遍歷到8個Sesstion變量:
GetCode
Admin_Style_Num
Admin_Name
Admin_Pass_Word
Admin_Parent_Admin
Admin_Is_Super
Admin_Pop_List
Admin_Add_Admin
被踢的要害原因在于系統(tǒng)的三個要害Session被釋放了.
Session("Admin_Name") ,Session("Admin_Pass_Word"),Session("Admin_Is_Super"),Session("Admin_Pop_List")
Session會無故丟失嗎?因為用戶一般是在不停地操作中被踢的,所以可以排除Session超時的可能(除非部分程序采用了window.open的方式打開窗口,這在少數(shù)情況下會發(fā)生Session、Cookies丟失的現(xiàn)象)。另外,Session超時時間被設(shè)定成10分鐘,不會這么快就超時的。
排除以上可能,我們進入下一步:
設(shè)置性能應(yīng)用程序池設(shè)置
打開 IIS 治理控制臺,單擊加號展開本地計算機。
單擊加號展開“應(yīng)用程序池”文件夾。
右擊適當(dāng)?shù)膽?yīng)用程序池,然后單擊“屬性”。出現(xiàn)應(yīng)用程序池的屬性對話框。
單擊“性能”選項卡,然后設(shè)置適當(dāng)?shù)膽?yīng)用程序池設(shè)置。
應(yīng)用程序池“屬性”對話框的“回收”和“性能”選項卡分別如下圖:
此主題相關(guān)圖片如下:

此主題相關(guān)圖片如下:

請分別按上圖所示設(shè)置。使用虛擬空間服務(wù)商提供服務(wù)器的朋友請聯(lián)系服務(wù)商進行相應(yīng)設(shè)置。一般情況下應(yīng)用程序池回收后服務(wù)器系統(tǒng)日志里面會記錄以下日志:
警告信息:為應(yīng)用程序池 'DefaultAppPool' 提供服務(wù)的進程 ID 為 3724 的 worker 進程已經(jīng)請求回收,因為 worker 進程達到了答應(yīng)的運行時間限制。
這樣的話服務(wù)器會清空所有采用該應(yīng)用程序池的站點的Session對象。
按照常規(guī),虛擬空間服務(wù)商不會把"應(yīng)用程序池"設(shè)置為"空閑超時"多少分鐘而進行回收工作。我估計一般會設(shè)置成"內(nèi)存回收",也就是說,該"應(yīng)用程序池"下的站點消耗內(nèi)存達到服務(wù)商設(shè)置的底線時,服務(wù)器就進行應(yīng)用程序池回收工作。因為我在幫"火星菜鳥"測試時發(fā)現(xiàn),我用自己的代碼測試比用風(fēng)訊系統(tǒng)時被踢的次數(shù)明顯很少,但也經(jīng)常被踢。我只是模防被踢原理測試了一下。以下是測試代碼:
文件 test.asp
<%
Session("SessionTest") = "Ksir"
Response.Redirect("view.asp")
%>
文件 view.asp
<meta http-equiv="refresh" content="1">
<%
Response.Write(Session("SessionTest"))
%>
把這兩個文件放到服務(wù)器上進行測試時,我得出結(jié)論是:服務(wù)商在應(yīng)用程序池上做了手腳。而且"火星菜鳥"的虛擬服務(wù)器一個應(yīng)用程序池PID所對應(yīng)的站點數(shù)目很多,這是很消耗系統(tǒng)內(nèi)存的。9
- 相關(guān)鏈接:
- 教程說明:
風(fēng)訊Cms教程-關(guān)于風(fēng)訊系統(tǒng)踢人的一些分析
。