【发布时间】:2013-03-11 21:06:09
【问题描述】:
我正在尝试使用 IIS 7.5 应用程序初始化扩展来为我的 Web 应用程序配置预热过程。这是我正在采取的一种方法,以尽量减少由应用程序池回收引起的减速,这是一个问题explained well in other questions on Stack Overflow。
我想要,获得应用程序初始化的好处,无需在其他任何地方重新映射请求。
到目前为止我做了什么
我遵循IIS 8 instructions 的基本用例,效果很好!我创建了一个名为 app_starting.htm 的启动页面,通过使用此代码,它会在应用程序初始化时显示:
<applicationInitialization remapManagedRequestsTo="app_starting.htm" skipManagedModules="true" >
<add initializationPage="/" />
</applicationInitialization>
为什么这不好
我想使用初始化来加快对使用 ASP.NET MVC 编写的基于 REST 的 Web 服务的请求。此 Web 服务是多个应用程序的后端。当他们向资源(即/client/1/addresses)发出请求时,他们无法处理接收启动页面。
我尝试过的
我删除了remapManagedRequestsTo 属性。但是,现在当我在初始化期间请求资源时,我收到 500 错误,直到初始化完成。之后,响应恢复正常。依赖此服务的应用程序也不会很好地响应 500 错误,因为初始化不应该是错误条件。
我需要什么
在不执行任何重新映射的情况下,我希望请求行为恢复正常。即使正在初始化,对应用程序的其他请求应该排队等待直到初始化完成。
我有什么遗漏吗?我能做到吗?
感谢您的帮助!
【问题讨论】:
标签: asp.net iis iis-7.5 splash-screen warm-up