如何预热 ASP.NET Web 应用程序,以便在导航到时不需要很长时间才能启动?



众包:我使用的是传统的经典ASP产品。为了执行事务结帐,我们打开一个iFrame(是的,我知道……太棒了!),然后在iFrame中的安全服务器上运行结帐服务器页面。签出项目是一个ASP。. NET web应用程序

问题是:应用程序的初始启动需要一些时间。有时是10秒。一旦它被加热,它就不需要再加热了,瞬间就能工作。如何加快初始加载?

我的想法(这是一个doosey):当用户在网站的经典区域点击时,调用结帐服务器上的安全web服务来激活web应用程序。然后,当用户真正点击这个东西时,它就被预热了。

还有其他想法吗?

根据您的IIS版本,我可能建议使用IIS 7.5 Warm-Up Module,但看起来它已经停产了。您可以做以下几件事:

  1. 编写一个服务(Windows服务,计划任务等),每x分钟或早上一次ping应用程序以保持其活动或唤醒它。
  2. 延长应用程序池的空闲超时时间
  3. 生成一个新线程(或启动一个弹出框,或一些可以在后台为你做的工作),当它第一次开始,离开并做热身过程,而你的方式导航到页面与iframe,然后让它关闭自己一旦它得到一个响应。

添加一个公共页面aspx或ashx页面,该页面返回一个告诉时间的RSS提要。然后用Feedburner之类的东西订阅那个RSS提要,它可以轮询RSS提要。由于RSS提要每次都不同,因此将更频繁地进行轮询。

在1.1中,您必须访问每个页面以避免初始编译税。我很确定在2.0+中你只需要访问一个页面,它不一定是你关心的那个。

最新更新