【问题标题】:Asp.net session expire very soonAsp.net 会话即将到期
【发布时间】:2011-09-02 06:20:36
【问题描述】:

我经常收到此消息并认为它不常见,我该如何解决此问题?

服务应用程序池“mywebsite.com”的进程 ID 为“8052”的工作进程已请求回收,因为它已达到其私有 字节内存限制。

【问题讨论】:

    标签: asp.net session


    【解决方案1】:

    您好,这不是因为超时而过期,而是由于内存限制而导致的应用程序池回收。通常非常糟糕。

    如果您可以完全控制您的 ASP.NET 应用程序,我建议您仔细分析它并检测您在哪里分配而不是释放/处置大量内存。

    这可能有助于了解用户经常经历哪些常见用例并开始调查这些用例。

    您是否在内存中加载大量字节 [] 用于文件下载?

    你是否在 Session 中保留了太多引用?

    有一次我们遇到了类似的问题,几周后我们才发现我们在 Session 中存储了对页面的引用,因此所有访问过的页面都一直保存在内存中。不容易找到,但一旦我们纠正了这个问题,问题就解决了。

    【讨论】:

    • 非常感谢 Davide Piras 快速而完整的回复
    【解决方案2】:

    您可能有内存泄漏。有许多可能的原因,可能是使用静态事件注册的会话或请求实例。试图将过多数据加载到内存中、会话超时设置过长等操作。

    您需要进行一些分析以确定原因。

    当然,也有可能您只是没有足够的内存来容纳用户数量并需要扩展,但除非您有大量流量,否则这种可能性极小。

    【讨论】:

      【解决方案3】:

      也许您的应用程序使用了大量内存?关于this post,您已达到应用程序允许的内存大小,IIS 重新启动应用程序池。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 2011-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        相关资源
        最近更新 更多