8

IIS 7.5 のアプリケーション初期化モジュールを使用して Web アプリの初期化速度を向上させる概念実証の一環として、SSL が有効になっている IIS 7.5 (Windows Server 2008 R2) でホストされる単純な 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> 
4

1 に答える 1

4

(私は知っています、古い質問ですが、それは未回答であり、この件に関する私自身のGoogle検索で出てきました。)

Microsoft サポートの次の記事を参照してください: Web サイトで 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 リクエスト」が厳密に非セキュアなリクエストを意味するものとして解釈されない限りは.

于 2014-06-11T20:53:01.483 に答える