【问题标题】:IIS 7.5 Application Initialization for ASP.NET web service (warmup) without remapping requests用于 ASP.NET Web 服务(预热)的 IIS 7.5 应用程序初始化,无需重新映射请求
【发布时间】: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


    【解决方案1】:

    我想我已经回答了我自己的问题。我删除了 skipManagedModules 属性并且它起作用了。这段代码完成了应用程序的初始化,并且在预热期间,请求似乎在等待它完成后才被处理:

    <applicationInitialization>
        <add initializationPage="/" />
    </applicationInitialization>
    

    我找不到任何文档说明它为什么会这样,也不太明白 skipManagedModules 的含义。如果有人可以进一步解释这一点,我可以将解释标记为答案。谢谢!

    【讨论】:

    • Jason 我想知道您在这里使用的是什么版本的 Windows?我正在尝试在 2008 r2 / IIS 7.5 上设置应用程序初始化,但遇到了很多问题。谢谢!
    • 这正是我正在使用的!我还在我的 Win7 x64 工作站上配置了它以进行开发。你有没有installed the extension?IIS 8 自带了这个功能但是必须在 7.5 上安装。
    • 我遇到了几个问题。扩展安装后,applicationHost.config 中缺少该模块,我们正在运行 SSL。我仍在解决 SSL 问题。如果我使用 IIS 8,这一切都会更容易,但可惜这不是一个选项。
    • 好的,是的,安装时没有配置applicationHost.config。关于 SSL,我们也使用它,但我不使用“需要 SSL”标志。相反,我使用 URL Rewrite 将除 localhost 请求之外的所有请求重定向到 HTTPS。然后我可以让本地热身正常工作......
    • 该代码是否意味着当您启动某个网站时,它会自动向“/”发送请求?这意味着第一个请求将自动发送?因为这就是我想要的,我不想等待用户发送第一个请求或 IIS 循环时间完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多