【问题标题】:asp.net sessions lost when the page is reloaded (ispostback = false)重新加载页面时,asp.net 会话丢失(ispostback = false)
【发布时间】:2010-02-27 16:00:06
【问题描述】:

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

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

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

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

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

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

请帮助 x

【问题讨论】:

  • 尝试将问题隔离到您在此处发布的简单 aspx 页面,以便人们可以轻松地重现该行为并提出解决方案。

标签: asp.net session webserver


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    确保您的 web.config 具有正确的 &lt;sessionState&gt; 部分,其中 modeInProc

    <sessionState mode="InProc" />
    

    【讨论】:

    • 嗨 Oded,我使用相同的 web 配置文件进行开发和 web 服务器机器。 asp 开发服务器会自动为我执行 吗?当我可以重新登录我的公司网络时,我会检查网络配置。谢谢;)
    猜你喜欢
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 2013-12-12
    • 2023-03-25
    相关资源
    最近更新 更多