【问题标题】:IIS 7.5 Application Initialization (Warm-up) and HTTPSIIS 7.5 应用程序初始化(预热)和 HTTPS
【发布时间】:2013-09-26 16:31:24
【问题描述】:

我们已经在 IIS 7.5 中使用应用程序初始化模块很长一段时间了,它一直都能完美运行。

但是,我们刚刚开始实施 SSL,它似乎与热身产生了冲突。我做了很多研究,但到目前为止还没有解决方案。

基本上问题是初始化模块不遵循重定向。我们必须为站点的某个部分启用 http,但我们确实将所有其他 HTTP 访问重定向到它们的 HTTPS 等效项。我已经使用重写规则解决了这个问题,该规则会向 https 页面抛出 302。初始化接收到这个 302,但只是忽略它。

我尝试过的解决方案:

APP_WARMING_UP 服务器变量

这个最有意义。只要 {APP_WARMING_UP} 返回 1,我就可以简单地让重写规则忽略每个请求。根据文档,只要初始化仍在运行,它就会设置为 1。不幸的是,这根本不起作用,因为 {APP_WARMING_UP} 始终只返回一个空字符串。也许这是 7.5 的限制? (见下面我的重写规则。)

将初始化页面更改为 HTTPS 版本

目前是这样配置的:

    <applicationInitialization remapManagedRequestsTo="Warmup.htm" skipManagedModules="true" doAppInitAfterRestart="true">
        <add initializationPage="/WarmUp?id=1" />
    </applicationInitialization>

我尝试将 URL 更改为“https://{HTTP_HOST}/Login/WarmUp?id=1”,甚至将 {HTTP_HOST} 替换为绝对地址,但两种配置似乎都完全禁用了应用程序初始化。它甚至不再发出页面请求。

这是关于模块的文档:

http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization

这是我的重写规则,基本上是整个考验的罪魁祸首。这是唯一的一个。

<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" negate="true" />
        <add input="{REQUEST_URI}" pattern="/services" negate="true" />
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" logRewrittenUrl="true" />
    <serverVariables>
        <set name="SKIP_MANAGED_MODULES" value="0" />
    </serverVariables>
</rule>

有人可以帮忙吗?

【问题讨论】:

    标签: iis iis-7 iis-7.5


    【解决方案1】:

    可能有帮助。该模块似乎不适用于需要 SSL 的站点。见this KB issue。我猜模块踢的是 http 请求而不是 https。

    您可能希望创建一个允许 http 且不重定向到 https 的页面。

    【讨论】:

    • 这太完美了!他们的解决方案基本上是我的 APP_WARMING_UP 之一,但他们通过测试用户代理及其源 IP 来检测应用程序初始化模块。我应该想到的。 (所以我不必制作一个接受 http 的页面来说明问题。我只需要更改重写规则。)这也证实了 {APP_WARMING_UP} 不适用于 IIS 7.5。他们应该将其添加到他们的文档中。
    • 你的新重写规则是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 2016-04-26
    • 2012-08-01
    相关资源
    最近更新 更多