相关疑难解决方法(0)

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

我们已经使用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>
Run Code Online (Sandbox Code Playgroud)

我尝试将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>
Run Code Online (Sandbox Code Playgroud)

有人能帮忙吗?

iis iis-7 iis-7.5

6
推荐指数
1
解决办法
5480
查看次数

标签 统计

iis ×1

iis-7 ×1

iis-7.5 ×1