asp.net(C#)网站刷屏、访问限制处理及高访问量的并发处理
现有一个网站,asp.net的,使用c#开发,windows 2003+iis+sql 2008。
现在发现有以下非正常使用情况:
1)用户使用如按键精灵之类的软件进行刷新页面,造成服务器访问压力过多,同时浪费带宽资源。
2)用户在多台电脑上登录,也就是一个用户账号被多个人使用,这是不允许的。
3)一台电脑上使用多个账号同时登录,这也是不允许的。
4)很多用户大量刷新页面(如:查询最新10条信息页面),导致数据访问持续过高,服务器压力过大。
需要解决的问题:
1)限制用户刷新的频率,如30秒内只能刷新一次,要求时间是可配置的。
2)限制用户多地登录,如果已经被登录了,则限制登录,要考虑用户非正常退出(如停电关机)之后重新登录的问题。
3)限制同一台电脑可登录的用户数量,要考虑可能使用多个浏览器的情况,代理、修改IP的情况。
4)采取相关技术手段,如缓存等,在数据没有发生变化的情况下,尽量减少对数据库的访问。
由于人手少和时间较紧,现有想找人直接解决上述问题?
------解决方案--------------------
第一个问题:ASP.NET网站限制访问频率
http://www.cnblogs.com/azure/archive/2009/09/19/1570188.html
第二个问题:在用户表加一个字段即可 也就是用户状态的字段
后面的就不用我多说了吧
第三个问题:一般的办法就是根据IP来判断,但是人家要是修改了IP 那没办法,除非人家恶意要来搞你的网页
如果是恶意的话 那么建议你换一个更强壮的服务器
第四个问题:减少对数据库的访问,这主要是你的代码问题!当时你编码的时候 是否采取了数据妥当处理
代码逻辑等 建议使用设计模式
大体就这些吧
....
------解决方案--------------------
第二个问题不敢苟同,应该还要加个监视器,每隔几分钟判断用户是否活动,如果活动值不变,如果不活动值为0