您的位置:首页 > 其它

虚拟主机管理系统开发日志(1)

2008-09-01 16:51 459 查看
虚拟主机管理系统开发遇到的一些问题

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,得到的就是最后正确的到期时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: