【问题标题】:Why do I lose my Session Variable in 5 minutes?为什么我会在 5 分钟内丢失会话变量?
【发布时间】:2010-09-20 11:03:21
【问题描述】:

我有一个网页,用户可以在其中选择一家公司,并通过会话将公司名称保存在内存中,但是当我转到下一页时,会话仅持续 5 分钟? 无论出于何种原因以及如何解决此问题,我确实在 Web.config 中扩展了 Session 状态,但这不起作用。

示例:Session("CompanyName") = "Bytes Technology"

在我的 web.config 中,我有: 超时="40" />

我使用 Session("CompanyName") 从 Default.aspx 移动到 CompanyDetail.aspx

但如果我让 CompanyDetail.aspx 中的程序空闲,我会丢失会话状态。

有什么想法吗?

问候 艾蒂安

【问题讨论】:

    标签: asp.net iis session session-state


    【解决方案1】:

    从您的评论中,我了解到您认为您的网站位于负载平衡服务器场中。

    在这种情况下,您需要将会话存储在 db 中或避免使用它:您无法确定每次回发时同一台服务器都会为同一用户提供服务,并且如果用户从服务器“A”转到服务器“B”在两个不同的帖子中...您的会话变量丢失了。

    尝试在 Google 上搜索“会话状态数据库”,您会在此找到大量内容。

    希望对你有帮助

    安德烈亚

    【讨论】:

    • 感谢您的回复,我会从托管我网站的公司那里找到并告诉他们检查所有这些。我不能不使用 Sessions,因为我在我的网站上到处都使用它。去看看 www.erate.co.za 。问候艾蒂安
    • 好吧,如果你有一个可以访问的 sql server 数据库,你可以考虑为自己创建必要的数据库——如果提供者没有帮助的话。再见!
    【解决方案2】:

    一些问题:

    • 超时时间总是一样的? 5分钟?
    • 您的站点是否在负载平衡服务器场中运行?拥有多个前端服务器?
    • 您在 web.confing 中对会话和会话状态有什么看法?

    【讨论】:

    • 是的,如果我让页面空闲时间超过 5 分钟,我将失去会话。是的,我认为我的网站正在负载平衡服务器场中运行......我不是在做托管,另一家公司正在为我做这件事。这就是我告诉我的 web.config 的内容。
    【解决方案3】:

    我敢打赌你没有使用负载平衡的农场,实际上是在使用共享主机。

    在负载平衡的场中,您的代码部署到多个服务器,如果您禁用了粘性会话,用户将使用每个请求负载最少的服务器。

    由于您使用的是 3rd 方托管,我严重怀疑您是否这样做。

    主机提供商可以在 IIS 中硬设置会话超时,最可能的罪魁祸首是他们将其设置为 5 分钟。

    致电您的主机提供商,询问他们的 IIS 会话设置,然后从那里开始。

    【讨论】:

    • 您好,感谢您的回复。我正忙于与我的主机提供商交谈并等待回复。我会让你们都知道发生了什么。谢谢艾蒂安
    【解决方案4】:

    在 IIS 中,进入您网站的属性,单击主目录选项卡,然后单击配置按钮。在这里,单击选项选项卡并检查那里的会话超时。我很确定这只会影响经典的 ASP,但我不是 100% 确定。

    【讨论】:

      【解决方案5】:

      如果这种情况总是在 5 分钟发生,请检查 web.config 的会话设置,并检查 IIS:website/Properties/ASP.NET,单击编辑配置,选择状态管理选项卡,然后检查会话设置。

      【讨论】:

        【解决方案6】:

        服务器上是否有一些防病毒软件导致 Web 应用程序每 5 分钟重置一次,而 ASP.NET 运行时认为二进制文件或 web.config 已更改?这也是可能的。

        【讨论】:

          【解决方案7】:

          另一个想法是将机器名称放在页面上的注释中,看看它是否在页面之间发生变化,只是为了确认处理请求的服务器发生了变化。

          【讨论】:

            【解决方案8】:

            感谢大家提供的所有信息。托管我网站的公司刚刚延长了应用程序池的时间,并且奏效了!

            谢谢 艾蒂安 http://www.erate.co.za

            【讨论】:

              【解决方案9】:

              我决定放弃使用会话变量并使用查询字符串!好多了!!

              【讨论】:

                猜你喜欢
                • 2014-08-23
                • 1970-01-01
                • 1970-01-01
                • 2012-01-10
                • 1970-01-01
                • 2011-04-15
                • 2020-01-09
                • 1970-01-01
                相关资源
                最近更新 更多