为应用程序池提供服务的工作进程' xxx v4.0(经典)'已请求回收,因为它达到了其专用字节内存限制

时间:2015-03-16 22:14:22

标签: c# .net iis memory-management application-pool

我有一个共享主机帐户,内存为128MB,我的网站位于自己的应用程序池中。

网站很小,流量很低,但我一直收到以下错误:

A worker process serving application pool 'xxx v4.0 (Classic)' has requested a recycle because it reached its private bytes memory limit.

这种情况经常发生,会重新启动应用池。如果应用程序池经常重启,最终会停止。然后,当我去网站时,我会收到503错误。

该网站使用c#编写,可以从ef和ado.net访问数据。我的所有数据库连接都在使用语句中,我相信它们正在被正确打开和关闭。

我已经与主机通话了,我可以将RAM升级到256MB,这似乎可以使网站运行良好。但我有点担心只是升级RAM只会暂时掩盖问题。

在我将web文件复制到我正在构建用于发布的服务器之前,在web配置中我将调试设置为false。

当我在visual studio中运行解决方案时,我的IIS Worker Process徘徊在100 MB左右。

我认为我的问题是:

有什么办法可以在我的本地机器上复制我的托管环境吗? 一个相当小的网站超过128MB的RAM是否正常?

我有点不知所措。任何帮助或指导将不胜感激。

其他可能重要的信息:

.NET Framework是4.5 Web表单 使用AjaxControlToolkit(只加载我需要的脚本)

我看了很多博客文章和类似的问题,但我似乎无法取得任何进展。

由于

吉姆

1 个答案:

答案 0 :(得分:0)

该消息是关于在IIS本身内达到配置的限制,它不一定与主机本身的RAM量有关(尽管您在IIS中设置的设置应考虑到您的聚合RAM,因此有一个间接的链接)。

  • 打开IIS
  • 左键单击"应用程序池"
  • 找到您的专用池并右键单击它,选择"回收......"
  • 检查"私有内存使用情况(以KB为单位):"值
  • 这就是你所超越的

[这些说明基于IIS 7.5,但与其他版本类似]