gpt4 book ai didi

IIS 7.5 应用程序初始化(预热)和 HTTPS

转载 作者:行者123 更新时间:2023-12-04 13:40:11 31 4
gpt4 key购买 nike

我们已经使用 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>

有谁能帮忙吗?

最佳答案

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

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

关于IIS 7.5 应用程序初始化(预热)和 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033744/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com