我们一直在使用IIS 7.5的应用程序初始化模块,而且一直运行得非常完美。但是,我们刚刚开始实施SSL,似乎与预热功能产生了冲突。我已经做了很多研究,但迄今为止没有解决方案。基本上问题在于初始化模块不遵循重定向。我们必须保持http对站点的某个部分启用,但我们确实将所有其他HTTP访问重定向到其HTTPS等效项。我使用重写规则解决了这个问题,它会将302抛出到https页面。初始化收到此302,但只是忽略它。我尝试过的解决方案有:APP_WARMING_UP服务器变量,更改初始化页面为HTTPS版本。当前配置如下:
我尝试将URL更改为“https://{HTTP_HOST}/Login/WarmUp?id=1”,甚至用绝对地址替换了{HTTP_HOST},但这两种配置似乎完全禁用了应用程序初始化。它甚至不再发出页面请求。
这是该模块的文档:
<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>
有人能帮忙吗?