2010-02-27 76 views
4

我对会话变量有一个很奇怪的问题。页面重新加载时asp.net会话丢失(ispostback = false)

我有一个设置了几个会话变量的asp.net页面。在我的开发机器(本地主机)上,我做了回发,会话值仍然填充。

当我通过单击url栏并按下Enter键重新载入页面时,会话变量仍然存在。

但是,当我将此页面部署到网络服务器时,该页面在进行回发时仍保留会话值,但只要我单击url并按下输入会话值就会丢失(其中ispostback = false)

但是,当我按下刷新按钮会话变量是存在的(但我得到一个弹出警告我,页面数据需要重新发送!)

我运行IE 7,web服务器是IIS6什么我做错了吗?!

请帮助X

+4

尝试隔离的问题,你在这里发布,使人们可以很容易地重现该问题,并提出解决方案的简单'aspx'页。 –

回答

1

听起来就像是Web服务器没有被配置为使用会话状态。

确保你的web.config有正确的<sessionState>部分,与modeInProc

<sessionState mode="InProc" /> 
+0

嗨Oded,我使用相同的Web配置文件的开发和Web服务器的机器。 asp开发服务器会自动为我执行吗?当我可以登录到我的公司网络时,我会检查网络配置。谢谢 ;) – Hannah

2

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

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

http://support.microsoft.com/kb/307598

相关问题