2011-09-02 87 views
1

我经常收到此消息,并认为这并不常见,我该如何解决此问题?Asp.net会话很快就会过期

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

+0

网站上有多少用户? – TheCodeKing

回答

4

嗨,这是不是因为超时过期,它是一个应用程序池回收,由于内存限制。通常非常糟糕。

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

这可能有助于理解用户经常遇到的常见用例并开始调查这些用例。

您是否正在加载大量内存中用于文件下载的byte []?

你是否在会话中保留了太多参考?

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

+0

感谢Davide Piras为您提供快速和完整的回应 – SnowStorm

0

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

1

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

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

当然,它也有可能你没有足够的内存供用户数量和需要扩展,但除非你有很多流量,否则它是不太可能的。