我们想要预热托管在 IIS 7.5 服务器上的 ASP.NET MVC 应用程序。过去在http://forums.iis.net/t/1176740.aspx上提供的热身模块已被删除。
每次 IIS 或 ASP.NET 工作进程因任何原因重新启动时,都应预热应用程序。在预热期间,IIS 应返回一些 HTTP 状态代码,表示其预热状态或无法为任何客户端提供服务。
创建一个通过 HttpRequests 浏览站点中必要页面的可执行文件是个好主意吗?可执行文件可以从 IProcessHostPreloadClient 实现触发。是否可以将 IIS 配置为仅接受来自 localhost 的请求,并且一旦可执行文件完成,它就可以切换到所有客户端 - 但该切换不应触发 IIS 重新启动(显然)。
是否可以使用 Visual Studio 2010 - Web 性能测试来预热应用程序而不是创建手动可执行文件?还有其他选择吗?
PS:应用程序使用表单身份验证并使用会话 - 因此维护状态 cookie 和其他 cookie 很重要。
更新 1 - 我们在我们的应用程序中使用 .NET Framework 4.0 和 Entity Framework(数据库优先)。EF 查询的第一次命中很慢。热身背后的原因是为了让这些第一次击球不碍事。我们已经在大多数地方使用编译查询,并且我们已经为 EF 实现了预编译视图。模型和应用程序的大小非常庞大和复杂。预热需要遍历许多页面,以确保在任何最终用户访问应用程序之前,已编译和未编译的 EF 查询至少执行一次。