从同一IIS上托管的另一个Web应用程序调用Web应用程序会产生延迟吗?

时间:2014-08-18 14:08:23

标签: c# asp.net iis

我有两个基于2.0和4.0框架构建的Web应用程序。我从4.0 FM网站链接到2.0 FW网站。因此两者都托管在同一个IIS上,但具有不同的应用程序池。我使用iframe从site4.0调用此site2.0。因此,当我单击一个按钮加载此site2.0时,第一次加载需要花费很多时间。之后它像往常一样加载。如果您有任何建议,请建议我。我正在考虑使用global.asax文件,并在第一次加载site4.0时使用Application_start事件加载此站点。但不知道该怎么做。

由于

1 个答案:

答案 0 :(得分:1)

您的请求有延迟的原因有几个:

如果是第一个请求,那么您的网站仅仅是JITing(称为即时编译)。第一次调用任何 .NET应用程序时会发生这种情况;在IIS上运行它表现为比正常的第一个请求更长的时间。这很正常。

有两种方法可以对抗它:

  • " Pre Warm"您的站点在部署后立即发起请求,以使JITing(和视图编译)发生。
  • 使用ngen to pre-JIT your site之类的产品。

如果后续请求有延迟,则需要对应用程序进行概要分析。确保它内置于'发布'模式。

当应用程序池被回收时,您的站点将不得不重新进行JIT; this is normal。保持活动任务 - 自动HTTP请求实用程序(如经常执行wget的脚本)将使您的应用程序池因不活动而无法回收。