问题 网站与Asp.net mvc IIS6闲置后,第一个请求非常缓慢


我在asp.net mvc中有一个项目,我的主机使用IIS6,并且网站闲置后的第一个请求非常慢。 我在看, http://forums.asp.net/t/1418959.aspx 并要求主机进行此设置。 他们说实际设置是:

“池已设置为禁用空闲超时,启用快速失败并使用单个工作进程。”

但在第一次请求时仍然很慢。你还有其他线索吗?

提前致谢,

阿尔弗雷多


11791
2017-09-14 17:14


起源

在服务器上,试试这个:运行 - > inetmgr - >展开MACHINE(本地计算机) - >选择应用程序池 - >右键单击应用程序池 - >属性 - >性能选项卡 - >取消选中“空闲后关闭工作进程: (以分钟计的时间)“。 (此外,可以在此提示的“回收”选项卡中调整回收时间。) - Patrick


答案:


你可能是受害者 工人流程回收。询问您的主机工作进程经常被重新处理的频率。

当工作进程被回收时,它必须重新编译并重新启动整个Web应用程序,这就是导致速度减慢的原因。


8
2017-09-14 17:29



是的,这是我的第一次尝试,就像我提供的链接中提出的解决方案一样,但主机已经更改了设置,仍然无法正常工作。但是谢谢! - Alfredo Fernández
在减速发生之前需要多长时间?此外,进程回收和空闲超时不是一回事(我可能没有说清楚) - 你确定你的主机改变了正确的吗? - Jeff Hardy
好!我很想念你,我的主持人说每24个小时就有一个工人加工。现在正在预编译网站,但我会设置一个测试环境,并尝试记录一些事件,知道需要多长时间,我想找到一个没有预编译的解决方案。我会告诉你。再次感谢! - Alfredo Fernández


这很自然。

IIS通常配置为在某个年龄或某段时间内没有请求的情况下关闭网站。在IIS关闭asp.net之后第一个请求到来时,必须加载(并可能编译)您的网站。

常见的解决方案是 预编译您的网站 在将其发布到服务器之前。


5
2017-09-14 17:25



我同意你 - omoto
预编译与ASP.NET MVC无关,它是一个幕后的Web应用程序类型项目。 - Wyatt Barnett
怀亚特是对的 stackoverflow.com/questions/336205/... - Alfredo Fernández
最后它奏效了!但我想尝试在没有预编译网络的情况下使其工作。谢谢! - Alfredo Fernández


只是一个猜测,但也许你正在缓存一些数据,需要在网站闲置一段时间后刷新?

如果不是这种情况,那么我的猜测是工作进程由于某种原因而被关闭(可能是由于IIS中的空闲超时之外的其他原因)。如果需要检查是否可能出现这种情况,可以在Application_Start事件中添加一些代码,将事件记录到文件或现有的任何日志记录中。运行一段时间后,您可以检查日志并查看已发生的Application_Start事件数。


2
2017-09-14 17:23



不,我没有抓到任何东西。我已经要求主机记录工作进程事件,请参阅: microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/...  但我也会尝试。谢谢! - Alfredo Fernández