我正在尝试使用IIS 7.5应用程序初始化扩展来配置我的Web应用程序的预热过程。这是我采取的一种方法,以最小化应用程序池回收引起的减速问题,这在Stack Overflow的其他问题中已经很好地解释了。
我想要的是,获得应用程序初始化的好处,而不需要将请求重新映射到其他地方。
到目前为止我所做的事情
我按照IIS 8说明书的基本用例进行操作,效果非常好!我创建了一个名为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错误做出良好的响应,因为初始化不应该是错误条件。
我需要什么
在不执行任何重新映射的情况下,我希望请求行为恢复正常。即使正在进行初始化,其他对该应用程序的请求应该排队等待直到初始化完成后再处理。
我有什么遗漏吗? 我能实现这个吗?
感谢您的帮助!