1

HttpModule私のアプリケーションには、高度なロギングに使用するカスタムがあります。HTTP応答にいくつかのカスタムヘッダーを追加するだけです。

私が抱えている問題は、このモジュールを有効にすると、.CSSファイルが.のHTTPヘッダーで返されることですCache-Control: no-cache。モジュールをオフにすると、期待どおりの結果が得られますCache-Control:max-age=2419200

キャッシュを有効にしています:

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="28.00:00:00"/>
</staticContent>

にカスタムヘッダーを追加することをコメントアウトしようとしましたHttpModuleが、うまくいきませんでした。

また、これは.CSSファイルの問題を引き起こしているだけです。たとえば、.JS、.PNG、.GIFはすべて期待どおりに機能しています。なぜ.CSSが特別なのか理解できないようです。

そのモジュールがあるだけで、キャッシュヘッダーがそのように機能する理由がわかりません。何かご意見は?

IIS7とIIS7.5でこれを試しました。(実際にはWindows Azureで実行されていますが、違いはないと思います)。


編集:web.configは非常に大きいです。ここに全部入れたくない。これがもっとです:

<system.webServer>
    <handlers>
        <add name="pngHandler" path="*.png" verb="*" type="CompanyXXX.Applications.Portal.PngHttpHandler,Portal.System" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" preCondition="" />
        <add name="gifHandler" path="*.gif" verb="*" type="CompanyXXX.Applications.Portal.GifHttpHandler,Portal.System" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" preCondition="" />
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
    <modules>
        <add name="CookieManagerModule" type="CompanyXXX.Web.CookieManagerModule, Framework.Web" preCondition="" />
        <add name="AuthenticationModule" type="CompanyXXX.Applications.Portal.AuthenticationModule,Portal.System" preCondition="" />
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition=""/>
        <add name="LoggingModule" type="CompanyXXX.Applications.Portal.LoggingModule,Portal.System"/>
        <add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce" />
    </modules>
    <validation validateIntegratedModeConfiguration="false" />
    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false"/>
    <httpCompression sendCacheHeaders="true">
        <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    </httpCompression>
    <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="28.00:00:00"/>
    </staticContent>
</system.webServer>

コードに関しては、ここに投稿することはできません。私が言えるのは、応答に3つのヘッダーしか追加されないということだけです。

4

1 に答える 1

0

同様の問題がありました。

アプリケーション プールを PipelineMode からClassicに変更すると、Files の Response ヘッダーに Cache control max age タグが表示されます。

クラシック モードでは、ハンドラーを下に置く必要があります。

      <system.Web><httpHandlers> <!--add here--></httpHandlers></system.Web>
于 2012-09-14T12:30:48.820 に答える