我试图使用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服务是几个应用程序的后端。当他们向资源(即/客户端/ 1 /地址)发出请求时,它们不能处理接收到启动页面。
我试过了
我删除了remapManagedRequestsTo属性。然而,现在当我在初始化期间请求资源时,我会收到一个500的错误,直到初始化完成。之后,回应恢复正常。依赖此服务的应用程序也不会对500错误做出很好的响应,因为初始化不应该是错误条件。
我需要的
不执行任何重映射,我期望请求行为恢复正常。即使正在进行初始化,对应用程序的其他请求应该排队等待,直到初始化完成。
有没有我失踪的东西?我可以做到吗
谢谢您的帮助!