【问题标题】:First request is very slow after website sits idle with Asp.net mvc IIS6网站使用 Asp.net mvc IIS6 闲置后,第一个请求非常慢
【发布时间】:2010-11-28 05:08:17
【问题描述】:

我有一个asp.net mvc的项目,我的主机使用的是IIS6,网站sid's idle后的第一个请求很慢。 我看了看,http://forums.asp.net/t/1418959.aspx 并询问了主机这个设置。 他们说实际设置是:

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

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

提前致谢,

阿尔弗雷多

【问题讨论】:

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

标签: asp.net-mvc iis-6


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

这很自然。

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

常见的解决方案是precompile your website,然后再发布到服务器。

【讨论】:

  • 预编译与 ASP.NET MVC 无关,它是一个 Web 应用程序类型的项目。
  • 终于成功了!但我想尝试在不预编译网络的情况下使其工作。谢谢!
【解决方案3】:

您可能是worker process recycling 的受害者。询问您的主机回收工作进程的频率。

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

【讨论】:

  • 是的,这是我的第一次尝试,正如我在链接中提出的解决方案一样,但主机已经更改了设置,但仍然无法正常工作。不过谢谢!
  • 需要多长时间才会出现减速?另外,进程回收和空闲超时不是一回事(我可能没有说清楚)-您确定您的主机更改了正确的吗?
  • 好的!我误会了你,我的主人说工作进程每 24 小时进行一次。现在预编译网站运行良好,但我将设置一个测试环境并尝试记录一些事件以了解需要多长时间,我想找到一个无需预编译的解决方案。我会告诉你。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2015-05-20
  • 2017-04-15
  • 2016-01-21
  • 2014-11-10
相关资源
最近更新 更多