我正在为客户端使用当前的Web应用程序,我遇到了一些会话变量在我身上消失的问题。我将尝试尽可能地对场景进行良好描述。除了我创建的页面之外的任何页面都不会发生这种情况,以允许用户修改存储在资源文件中的字符串。
它出现了什么时候: 用户导航到该页面,从列表中选择资源文件,然后单击第一次编辑。该页面将文件加载到gridview中,并允许他们编辑它。此时,会话变量正在保存,并在所有回发时正确重新加载。现在,他们单击底部的保存按钮将资源文件写入文件系统(App_LocalResources)。他们从列表中选择一个新文件,尝试加载它,这次会话变量被清除,然后将它们重定向到登录页面,因为它不知道用户信息。
Additinal details:
只有当他们点击一个保存按钮时才会发生这种情况,而保存按钮又调用我的程序来写入资源文件。
除了写入位于App_LocalResources中的资源文件之外,我在保存功能方面做的并不多,并且出于某种原因这会清除我的会话变量。
有问题的会话变量是用户信息,我试图将其作为page_load方法中的第一件事。
此会话信息也会在每次回发时通过page_load方法执行。
谢谢大家,我希望我能够很好地描述这一点。
答案 0 :(得分:10)
当您更改与应用程序关联的目录中的文件时,IIS将重置应用程序。重置应用程序将使您丢失内存会话。
您可以将资源文件放在目录之外。或者使用状态服务器进行会话。