第一个Web API会话请求非常慢

Nir*_*iro 20 iis asp.net-mvc iis-7 asp.net-web-api

我正在编写一个IIS7上托管的ASP.NET Web API应用程序(没有特殊配置).

我的问题是,对于每个第一个请求(在一台新机器上/新浏览器/一段时间后......)都有很长的延迟 - 即使是返回常量的请求!

我读过关于"预热"剧本的内容,但这不是问题所在.看起来Web服务器正在尝试创建会话,这需要很长时间.有什么建议?

编辑

我认为延迟是由每个新会话的工作进程创建引起的.现在问题是为什么它如此缓慢,为什么Web服务器不重用生活工作进程来处理请求?

我已将应用程序池配置为将工作进程限制为5,没有超时(设置为0).这导致前五个会话在第一次请求(我可以忍受)上变慢,现在工作进程仍然存在.但令人惊讶的是,有时请求再次缓慢!

Dar*_*rov 14

如果您使用的是Windows Server 2008 R2,则可以configure the Auto-Start feature使用应用程序池.同样在应用程序池的属性中,您应该禁止它定期回收.请记住,尽管这会限制缓慢,但IIS仍然可以回收应用程序池.使用自动启动功能,它将自动再次加载到内存中,但您的代码Application_Start将在下一个请求中执行.所以你仍然可以观察到一些缓慢.