IIS 7で静的コンテンツのキャッシュを無効にする


9

私は、Windows Server 2008 R2上のIIS 7で比較的単純な問題になるはずの問題を抱えている開発者です。問題は、IIS 7がサーバー上のすべての静的コンテンツを過度にキャッシュしていることです。iisresetを実行しない限り、すべての.htmlおよび.jsコンテンツがキャッシュされ、ディスク上のコンテンツが変更されたときに通知されません。

私は以下を試しました:

  1. ブラウザのローカルキャッシュを削除する(私は99%肯定的ですが、これはサーバーキャッシュの問題です)
  2. IIS AdminのOutputCachingで.html拡張子を追加し、「ユーザーモードキャッシュ」のチェックを外し、「カーネルモードキャッシュ」のチェックを外します。
  3. IIS AdminのOutputCachingで、.html拡張子を追加し、「ユーザーモードキャッシュ」をチェックして、「すべてのキャッシュを禁止する」のラジオを選択します。
  4. IIS管理で、出力キャッシュ機能の設定を編集し、「キャッシュを有効にする」と「出力キャッシュでカーネルキャッシュを有効にする」のチェックを外します。
  5. 「C:\ Windows \ System32 \ inetsrv \ config \ appcmd set config "SharePoint-80"を実行しています-セクション:system.webServer / caching -enabled:false」
  6. applicationHost.configを調べて、キャッシュに関連するものをすべて無効にします。

何も動作しないようです。とてもイライラしています。誰か助けてくれますか?


2
あなたが解決策を見つけるために管理するDID。私も同じ問題に直面しています。すべてを試してみましたが、キャッシュを無効にすることはできません。唯一の方法は、ファイルのファイル名を変更し、要求を行ってから元に戻すことです。
Tivie 2013年

回答:


4

私は本当にsystem.webServer/cachingあなたのapplicationhost.configとweb.configのセクションを見たいです。できれば貼り付けてください。上記のappcmdコマンドを実行すると、ユーザーモードキャッシュが無効になり、カーネルキャッシュが有効になります。また、Webサイトまたはサーバーレベルでキャッシュを無効にしたい場合は、次のように変更します。

<system.webServer>
    <caching enabled="false" enableKernelCache="false" />
</system.webServer>

Fiddlerツールを使用して、コンテンツが実際にキャッシュされているかどうか、つまり304が返されているかどうかを確認することもできます。


0

サーバーで「netsh http show cache」を実行すると、キャッシュされたエントリが表示されますか?その場合、Webサーバーで出力キャッシュを正常に無効にできていません。


0

そして、ハンドラーが期待どおりのハンドラーであることを確認するための$ 0.02です。

静的ファイルは通常、静的ファイルハンドラーによって提供されます。ワイルドカードスクリプトマップを作成したり、すべてのファイルの種類と動詞のモジュールを登録したりするなど、おかしなことを行った場合は...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.