设置最大会话超时时间有什么缺点或限制吗?
本文关键字:缺点 什么 会话 超时 时间 设置 | 更新日期: 2023-09-27 17:50:27
在asp.net中,默认的会话超时时间是20分钟。假设如果我将会话超时时间更改为2小时或更长,那么它会导致服务器端的任何性能问题吗?
我想知道在asp.net中使用最大会话超时时间是否有任何限制或缺点?
请引导我走出这个问题?
会话在服务器上为每个用户维护。增加会话超时将阻止服务器释放分配给非活动会话的内存。
我想知道……有什么限制或缺点吗在asp.net中使用最大会话超时时间?
HttpSessionState。超时属性
Timeout属性的值不能大于525,600分钟(1年)。默认值为20分钟。
劣势:如果您有大量的用户,并且随着会话超时的增加,您的非活动会话将保留在Web服务器内存中,这可能导致应用程序池回收,这将导致丢失所有用户的所有会话。
如果您使用的是IIS6或更高版本,那么根据您的应用程序池设置,它可能会影响w3wp进程的回收频率。当应用程序池被回收时,会话将丢失,除非你使用进程外会话状态管理或sql作为会话状态主机。
如果您将超时时间增加到两个小时,个别用户不会经常失去会话,但它会增加所有浏览站点的用户在循环过程时偶尔注销的几率。
增加会话时间意味着闲置的网页不太可能超时(例如,如果用户去吃午饭时留下网页打开)。但是,这会占用更多的服务器资源,因为正如Habib所说,服务器在此期间必须存储用户信息。
它也可能是一个安全风险。如果用户关闭网页而不是退出,则增加了CSRF攻击的机会。
最好的办法是了解你的用户如何使用网页。如果页面必须长时间保持打开状态,请查看页面的定期回调或刷新。或者,如果站点对安全敏感,可以考虑在一段时间不活动后自动注销用户。
考虑到如果你试图在共享主机环境中提高超时值,你将失败,因为他们通过在machine.config
文件中设置该值来阻止你这样做,并且这是一个先例,你将需要使用SQL Session,并且你可以自由地更改超时时间。
他们通常也重新启动appool,每一次经常解除阻止任何恶意或坏代码,可以阻止其他网站,每次appool重新启动,这里是所有的会话(如果你使用SQL会话,当然不是)…
另一方面,如果你的自己托管web应用程序,除了内存大小(记住,我假设你说的是用户会话,顾名思义,是每个用户,每个应用程序,你会使用应用程序会话)。如果您考虑到内存的增加,那么没有什么,甚至性能也不会降低。