【发布时间】:2011-01-24 20:02:17
【问题描述】:
我有一个使用 WCF 服务的 Web 应用程序。 IIS 重置或应用程序池回收后,两者的预热速度都很慢。因此,作为一种可能的解决方案,我为 IIS 7.5 安装了 Application Warm-Up 并为网站和 wcf 服务设置了它。 我担心的是,它似乎没有任何区别 - 我第一次访问该站点时仍然需要很长时间才能将其显示出来。我检查了事件日志,没有错误。所以我想知道是否需要为该模块工作做任何特别的事情。
【问题讨论】:
我有一个使用 WCF 服务的 Web 应用程序。 IIS 重置或应用程序池回收后,两者的预热速度都很慢。因此,作为一种可能的解决方案,我为 IIS 7.5 安装了 Application Warm-Up 并为网站和 wcf 服务设置了它。 我担心的是,它似乎没有任何区别 - 我第一次访问该站点时仍然需要很长时间才能将其显示出来。我检查了事件日志,没有错误。所以我想知道是否需要为该模块工作做任何特别的事情。
【问题讨论】:
在 IIS 管理器中,当您进入站点,然后进入应用程序预热时,右侧有一个“操作”窗格。我认为你需要以下两件事:
单击添加请求并添加至少一个 URL,例如/YourService.svc
点击设置,勾选“Start Application Pool 'your pool' when service started”
这两个你都有吗?如果您没有检查第二个设置,那么我认为在用户点击该网站之前不会发生预热(这可能会破坏您的情况下预热模块的目的)。
【讨论】:
Microsoft 的一个新模块是 IIS 8.0 的一部分,它取代了之前的预热模块。此Application Initialization Module for IIS 7.5 可单独下载。
该模块将创建一个预热阶段,您可以在其中指定在服务器开始接受请求之前必须完成的请求数量。最重要的是,它将提供重叠的进程,以便新启动的进程在准备好之前不会为用户提供服务。
我在How to warm up an ASP.NET MVC application on IIS 7.5? 回答了一个类似的问题并提供了更多详细信息。
【讨论】:
After you have fixed possible software/code optimizations 允许我建议每个代码都需要通过硬件 cpu 进行处理。当我们使用多核 cpu 并安装更多 GIGS 的 ram 并将标准 UTP 5e 电缆的 UTP-6 电缆插入到服务器上时,我们的服务器的性能飙升......这并不能解决你的问题,但如果你痴迷于速度和我们一样,那么你会对瓶颈速度的各个维度感兴趣。
【讨论】: