重新加载页面时asp.net会话丢失(ispostback = false)

时间:2010-02-27 16:00:07

标签: asp.net session webserver

我对会话变量有一个非常奇怪的问题。

我有一个asp.net页面,它设置了几个会话变量。在我的开发机器(localhost)上,我进行了回发,并且仍然填充了会话值。

当我通过点击网址栏并按回车键重新加载页面时,会话变量仍然存在。

但是,当我将此页面部署到网络服务器时,页面在执行回发时仍会保留会话值,但只要我点击网址并按回车键,会话值就会丢失(ispostback = false)

但是当我按下刷新按钮时会出现会话变量(但是我确实会弹出警告我需要重新发送页面数据!)

我正在运行IE 7,而网络服务器是iis6我做错了什么?!

请帮助x

2 个答案:

答案 0 :(得分:2)

您使用的会话状态提供商是什么?默认值为 InProc ,其中会话存储在asp.net工作进程中。这意味着如果应用程序池被回收或Web服务器内存不足,会话状态可能会丢失。您可以尝试使用 StateServer 模式,从而将会话存储在服务器上运行的单独服务中。您可以在web.config中更改模式,例如

<system.web>
    <sessionState mode="StateServer" />
</system.web>

请参阅http://support.microsoft.com/kb/307598

答案 1 :(得分:1)

听起来网络服务器未配置为使用会话状态。

确保您的web.config具有正确的<sessionState>部分,modeInProc

<sessionState mode="InProc" />