【发布时间】:2012-08-15 14:47:59
【问题描述】:
我正在尝试解决会话 ID 在回发期间似乎神秘地清除的问题。我确定该值正在设置中,并且我的代码中没有其他地方可以清除该会话。此外,我将会话 ID 的值存储在我的页面视图状态中。在回发期间,视图状态为空,这实质上意味着当将值分配给视图状态时,会话变量为空。是否有可能在代码执行期间,会话对象因超时而被清除?
所以让我们说如果我有以下代码。
if (session["id"] == null) :line1
{ :line2
session["id"] = // Generate some unique id :line3
} :line4
viewstate["id"] = session["id"]; :line5
理论上是否有可能即使第 1 行中的 session["id"] 不为空,但由于超时,第 5 行为空。
【问题讨论】:
-
您在页面生命周期的哪个阶段使用此代码(Page_Load 等)?
-
是共享主机吗?它是一个长期运行的操作还是更多,介于两者之间?中间的操作平均需要多长时间?
-
您是否尝试通过代码进行调试以检查各个断点处 session["id"] 的值?
-
@TimS.VanHaren:此代码在 page_load 中
-
您是否将会话模式设置为“关闭”?