我有一个关于会话时间的问题,如果用户Logout.It不影响用户会话,并且用户会话持续一天,我们可以存储1个day.So的用户会话吗?
发布于 2011-11-04 16:36:53
可以在web.config的元素中设置timeout属性。也就是说,如果您正在使用InProc会话(存储在内存中),您应该知道在某些情况下(非活动时间、达到CPU/内存限制阈值等),IIS可能会回收应用程序池。当发生这种情况时,如果会话存储在服务器的内存中,它们将被销毁。要解决这个问题,可以使用进程外会话(StateServer或SQL)。您可以阅读有关不同session state modes的信息。
发布于 2011-11-04 16:48:55
你不会想为此使用会话的。(至少不是InProc会话。)
您可以增加会话的超时,但这意味着每个访问者都将有一个会话对象,该对象在他们离开站点后存活一天(假设您实际上在会话对象中存储了一些内容)。如果你每天有10000访问者,这意味着大约有10000个会话对象一直潜伏在内存中。
应用程序池通常定期回收,这意味着所有当前会话对象都会丢失。
您可以将用户身份存储在持久cookie中,并将任何其他数据存储在数据库中。您还可以按照Darin Dimitrov的建议使用进程外会话。
发布于 2011-11-04 16:52:43
您可以更改web.config文件中的默认session超时。
正如ASP.NET Session State所描述的,您可以这样做,并且可以更改超时周期
<configuration>
<sessionstate
mode="inproc"
cookieless="false"
timeout="20"
sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>"
server="127.0.0.1"
port="42424"
/>
</configuration>https://stackoverflow.com/questions/8006638
复制相似问题