虛擬主機管理系統開發日誌(1)

 虛擬主機管理系統開發遇到的一些問題

1.虛擬主機管理系統中會設置針對某一個文件夾的IUser的用戶權限,但網站本身就是使用IUser登錄的,怎麼能設置自已的訪問權限呢?
2.新建IIS站點的時候必須設置應用程序池,而這個應用程序池是由IIS來維護的,用戶如何知道有哪些應用程序池是可用的並進行設置呢?
3.Ftp用戶需要一個DomainID,類似於應用程序池,這個值由Serv_u來維護,該如何獲取?
4.Serv_U中[Domain](Domain後面還應該帶上域ID)節點中每個User後面都有一個序列號,這個序列號如何設置?
5.Ftp用戶的到期時間如何設置?

針對以上幾個問題的解決辦法:
1.服務器端使用一個WindowsService來進行實際的對IIS和Serv-U的操作,採用數據庫中的一個表作爲橋樑,網站有更新數據的話只需要更新此表中的數據即可。
如果是SqlServer2005的話,數據庫可以主動去調用.net Windows服務,利用此功能,當有新的更新的時候讓數據庫主動向Windows服務發起請求,這是最好的辦法。但SqlServer2000中沒有這個功能,所以我採用了在Windows服務中加一個定時器,定時去檢查數據庫中的表,根據檢索出來的數據來進行更新。爲了加快檢索速度,這個橋樑表中應保存儘量少的數據,我的做法是建立一個隊列表,裏面只保存要更改的類型、ID、操作類型,Windows服務執行操作成功以後立即刪除記錄,這樣可以保持此表中不會有大批量的記錄(除非是大批量的還原數據),減輕數據庫服務器的負擔。

2-3.既然採用了Windows服務,第2和第3個問題也就變得相對簡單,服務啓動的時候去檢查IIS和Serv-U,並初始化數據庫中的表,無法解決的問題是:添加或刪除應用程序池和域的時候,需要重新啓動服務。也可以讓服務定時去檢查IIS和Serv-U,但獲得的功能和耗費的資源相比是否值得需要自己去斟酌。

4.第4個問題,此序列號並沒有什麼用,但對此域下面的所有用戶來說,序列號必須是從1開始並且連續的,一旦有一個沒有,例如直接從3跳到了5,那麼第5個以及後面的用戶就無法登錄。

5.針對第5個問題,我仔細研究了Serv-U的配置文件,Expire字段的值是一串奇怪的數字,不知道如何計算出來的,但我發現一個規律,就是用戶的到期時間每增加一天,這個數字就增加 24*60*60,也就是一天的秒數。於是,我在Serv-U中添加一個用戶,設置其到期時間爲2000-1-1,得到配置文件中的數字爲946656000,然後以2000年1月1日爲基數,判斷到期時間與此基數相差的天數,計算出一共有多少秒再加上946656000,得到的就是最後正確的到期時間。
發佈了20 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章