RT所示,1.假设一个网站的访问量超过5W,使用session会丢失值?2.我的项目在一个服务器,数据库在另外一个服务器,session在web.config里面配置的是使用sqlserver存储方式,然后远程连接的数据库服务器.这样他消耗的是我项目服务器,还是数据库服务器?3.使用sqlserver这种存储方式有什么缺点?4.如果使用cookie,如何解决安全性的问题?5.就算耗费服务器资源,5W人的访问量大概会耗费多少?
跪求大神解答疑惑.......

解决方案 »

  1.   

    1.假设一个网站的访问量超过5W,使用session会丢失值?5W?不知道是什么概念,如果是5w pv/d  一般的服务器足够用,如果是5w同时在线,那session必然会丢失比较严重。2.我的项目在一个服务器,数据库在另外一个服务器,session在web.config里面配置的是使用sqlserver存储方式,然后远程连接的数据库服务器.这样他消耗的是我项目服务器,还是数据库服务器?web服务器肯定有一定的开销,但相对比较小,数据库那边会增加10%-15%的开销【同比全部直接用session情况】3.使用sqlserver这种存储方式有什么缺点?  
    开销大了一些4.如果使用cookie,如何解决安全性的问题?主要是加密解密算法问题5.就算耗费服务器资源,5W人的访问量大概会耗费多少?和服务器的性能,并发数,响应数 和网络配置都有关联,无法具体回答你这个问题
      

  2.   

    同时在线人数较多的情况下session一定会丢失?就算存到数据库一样的也会丢失嘛?
      

  3.   

    建议只用Cookie
    就算用Session也要保证尽量少的key value键对.
      

  4.   

    asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身就是用来做状态维护的,因此用HttpModule做Session是再合适不过了。原因1:bin目录中的文件被改写,asp.net有一种机制,为了保证dll重新编译之后,系统正常运行,它会重新启动一次网站进程,这时就会导致Session丢失,所以如果有access数据库位于bin目录,或者有其他文件被系统改写,就会导致Session丢失原因2:文件夹选项中,如果没有打开“在单独的进程中打开文件夹窗口”,一旦新建一个窗口,系统可能认为是新的Session会话,而无法访问原来的Session,所以需要打开该选项,否则会导致Session丢失原因3:似乎大部分的Session丢失是客户端引起的,所以要从客户端下手,看看cookie有没有打开原因4:Session的时间设置是不是有问题,会不会因为超时造成丢失原因5:IE中的cookie数量限制(每个域20个cookie)可能导致session丢失原因6:使用web garden模式,且使用了InProc mode作为保存session的方式
    要找到你的根本原因才行,session不会无缘无故的丢失