8

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

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

附加细节:

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

除了写入位于 App_LocalResources 中的资源文件之外,我在 save 函数中并没有做太多事情,出于某种原因,这会清除我的会话变量。

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

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

谢谢大家,我希望我描述得足够好。

4

1 回答 1

10

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

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

于 2009-04-08T17:16:32.087 回答