ASP.NET - 消失的会话变量

时间:2009-04-08 17:13:13

标签: asp.net session-variables

我正在为客户端使用当前的Web应用程序,我遇到了一些会话变量在我身上消失的问题。我将尝试尽可能地对场景进行良好描述。除了我创建的页面之外的任何页面都不会发生这种情况,以允许用户修改存储在资源文件中的字符串。

它出现了什么时候: 用户导航到该页面,从列表中选择资源文件,然后单击第一次编辑。该页面将文件加载到gridview中,并允许他们编辑它。此时,会话变量正在保存,并在所有回发时正确重新加载。现在,他们单击底部的保存按钮将资源文件写入文件系统(App_LocalResources)。他们从列表中选择一个新文件,尝试加载它,这次会话变量被清除,然后将它们重定向到登录页面,因为它不知道用户信息。

Additinal details:

只有当他们点击一个保存按钮时才会发生这种情况,而保存按钮又调用我的程序来写入资源文件。

除了写入位于App_LocalResources中的资源文件之外,我在保存功能方面做的并不多,并且出于某种原因这会清除我的会话变量。

有问题的会话变量是用户信息,我试图将其作为page_load方法中的第一件事。

此会话信息也会在每次回发时通过page_load方法执行。

谢谢大家,我希望我能够很好地描述这一点。

1 个答案:

答案 0 :(得分:10)

当您更改与应用程序关联的目录中的文件时,IIS将重置应用程序。重置应用程序将使您丢失内存会话。

您可以将资源文件放在目录之外。或者使用状态服务器进行会话。