作为利用IIS 7.5应用程序初始化模块提高Web应用程序初始化速度的概念验证的一部分,我创建了一个在IIS 7.5(Windows Server 2008 R2)上托管并启用了SSL的简单Web应用程序。请参阅下面的全球和本地设置。
如果我正确理解应用程序初始化模块的工作方式,我希望IIS向appinit.aspx(https://localhost/alwaysrunning/appinit.aspx
)发出初始化Web应用程序的请求。然而,这永远不会发生。
有什么想法吗?
属性initializationPage的目的是什么?
对此的任何帮助将不胜感激。
编辑:当我禁用SSL时,应用程序初始化模块会按预期向appinit.aspx发出请求。我需要通过启用SSL来实现此功能。
禅
applicationHost.config文件中的全局设置:
<add name="appinit" autoStart="true" startMode="AlwaysRunning">
<recycling logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory">
<periodicRestart requests="0" time="00:05:00">
<schedule>
<clear />
</schedule>
</periodicRestart>
</recycling>
<processModel identityType="NetworkService" idleTimeout="00:00:00" />
</add>
<application path="/alwaysrunning" preloadEnabled="true" applicationPool="appinit">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\alwaysrunnig" />
</application>
应用程序的web.config文件中的本地设置:
<applicationInitialization remapManagedRequestsTo="splashscreen.htm" skipManagedModules="true" >
<add initializationPage="/appinit.aspx" />
</applicationInitialization>
答案 0 :(得分:4)
(我知道,陈旧的问题,但它没有得到答复,并且在我自己的谷歌搜索中出现了这个问题。)
请参阅Microsoft支持中的以下文章: Application Initialization module fails when web site requires SSL (KB2843964)。引用:
<强>原因强>
此行为是设计使然。
解决强>
要解决此限制,您可以考虑启用HTTP(取消选中) IIS管理器/ SSL设置中的“要求SSL”设置)并使用URL 重写规则以将HTTP请求重定向到HTTPS,但不包括 来自预热模块的请求:
<rewrite>
<rules>
<rule name="No redirect on warmup request (request from localhost with warmup user agent)" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" />
<add input="{HTTP_USER_AGENT}" pattern="Initialization" />
</conditions>
<action type="Rewrite" url="{URL}" />
</rule>
<rule name="HTTP to HTTPS redirect for all requests" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
得爱“这种行为是设计的。”叹息。遗憾的是,我发现有关此应用程序初始化功能的顶级搜索结果未提及此限制 - 除非将“HTTP请求”解释为严格意义上的非安全请求。