3

我最近使用 Asp.net MVC 4、Ninject、EF Poco、SQL 2008、Auto Mapper 开发了 MVC 应用程序,并托管在 winhost 共享托管服务器中。我的问题是会话到期。两个或三个寄托请求应用程序池被回收。

请参阅下面的支持团队回复

我们在其独特的应用程序池/进程中托管每个网站。为确保服务器稳定性,如果满足以下任一条件,我们会回收应用程序:

1) 超过 20 分钟的空闲时间(20 分钟内没有 http 请求) 2) 应用程序使用超过 100 MB 内存 3) 应用程序使用超过 70% 的 CPU 资源超过 3.5 分钟

我检查了我们的服务器日志,确实发现了许多条目,其中您的应用程序池被回收,因为它开始消耗超过 100 MB 的服务器内存。以下是示例日志条目:

TimeGenerated:2012 年 9 月 5 日晚上 10:03:36 消息:服务应用程序池“customerPool_42717”的进程 ID 为“30088”的工作进程已请求回收,因为它已达到其私有字节内存限制。

TimeGenerated:2012 年 9 月 5 日晚上 10:02:36 消息:服务应用程序池“customerPool_42717”的进程 ID 为“315060”的工作进程已请求回收,因为它已达到其私有字节内存限制。

不幸的是,日志没有告诉我们您的应用程序正在做什么导致它消耗超过 100 MB 的服务器内存,它只记录它确实达到了内存限制。

出于安全和性能原因,我们不允许在共享主机环境中监控服务器资源。您可能想要评估您的应用程序在开发环境中使用的内存量,如果要求小于 200MB,最简单的解决方案是将您的帐户升级到 WinHost Max 帐户,这将增加您的可用内存量工作进程到 200MB 或具有 300MB 专用 RAM 的 WinHost Ultimate 计划。

如果无法升级您的帐户,您可能需要考虑使用 SQL Server 会话状态管理,因为您已经创建了一个数据库,有关更多信息,请花点时间查看以下 WinHost 知识库文章:

http://support.winhost.com/KB/a626/how-to-enable-aspnet-sql-server-session-on-your-web.aspx

如果您想安装架构,请告诉我。请注意,sql 会话不会阻止您的应用程序池自动回收,而只会在回收发生时保留会话。

你能建议如何克服这个问题吗?

4

1 回答 1

0

好的!,清除您的机器 asp.net 根 tmp 文件夹:

我一步一步地回答这个问题:1)以管理员身份运行命令提示符2)iisreset /stop 3)在资源管理器中打开 %windir%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

%windir%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root

,并删除所有临时文件夹。

4)返回 cmd ,然后iisreset /start

5)对于Web ser CPU问题,或清除您的系统驱动器清理(您的用户本地临时和%windir%\Temp文件)

6)如果您的 IIS 不起作用(返回错误代码:509,503,...)

a) iisreset /stop b)cd %windir%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

cd %windir%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root

c) aspnet_regiis -iru d)iisreset /start

尝试顶级步骤。

于 2012-09-06T08:20:33.803 回答