我想知道什么是最好的(例如最高效,普遍接受的行业标准)方法来处理潜在的会话过期,当您定期使用存储在其中的值时你的代码。正确处理潜在会话到期的方法
例如,我经常使用(在C#)类似于以下行:
Guid personGuid = (Guid)Session[SSPersonGuid];
我在Page_Load中检查值是否为空,并相应处理,但会议可能会在此人到期在页面上,在这种情况下,当他们点击页面上的一个按钮时,我们需要使用类似上面的内容,会有NullReferenceException。
是处理最好的办法只是这样每次使用之前检查空:
if (Session[SSPersonGuid] == null) {...}
还是有某种我不知道特别的东西?
与StateServer和sql服务器方法,会话仍然可以超时虽然他们在页面上虽然他们不能? – standgale 2012-08-16 04:22:42
看我的编辑。关于在进程外存储时丢失会话,可能会发生如果StateServer进程重新启动或重新启动服务器......可能会发生个人从未见过或经历过进程外会话超时的情况。 – 2012-08-16 04:44:29
我要么做错了事,要么根本不明白它应该如何工作。我试着通过设置2分钟的超时时间来测试它,看它是否仍然超时,并且在两分钟后仍然有效。根据我的理解,数据(例如SSPersonGuid)应该仍然可用。或者我不应该设置超时时间,并且永远不会超时。或者,我还需要做些其他事情才能切换到StateServer模式(所需的服务正在运行,也就是说我需要重新启动某些设备才能识别设置)。谢谢你的方式。 – standgale 2012-08-17 01:37:50