2011-03-13 6 views
16

デバッグ時にMVC3アプリで出力キャッシュを無効にしようとしています。私は(属性を介して)コントローラに出力キャッシュを指定していますが、コード全体に#ifデバッグする必要はありません。私はこれがうまくいくと思った:DEBUGまたはDebuggerで実行しているときに、MVC3でOutputCachingを無効にしますか?

// In Web.config.debug 
    <system.web> 
    <caching> 
     <outputCache enableOutputCache="false" 
        xdt:Transform="Replace" /> 
    </caching> 

しかしこれは無視されるようだ。それ以外のアイデアは、システム全体に厄介なglobal.asaxコードや#if DEBUGがなくてもそれを実行する方法は?

答えて

31

ファイルは、deployment packageを作成した場合にのみ使用されます。サイトをCassiniでローカルに実行する場合は、たとえば完全に無視されます。つまり、あなたのweb.configでキャッシュを無効にしてみてください可能性があります

<system.web> 
    <caching> 
     <outputCache enableOutputCache="false" /> 
    </caching> 
</system.web> 

とあなたのweb.config.releaseキャッシュを有効インチただし、Web配置パッケージ機能を使用しない場合、これらのファイルは完全に無視されます。

+0

これを直後に見つけました。これをリリースバージョンに移動し、それを「true」に設定します。ありがとう。 –

+2

この設定はIIS Express 8では動作しません。 – Freshblood

0

私はそれもうまくいくと思います。また、enableFragmentCacheをfalseに設定してみてください。 this linkパー:

EnableFragmentCacheプロパティがfalseに セットがあり、何ページに関係なく、ページで使用されるOutputCacheディレクティブまたはキャッシュ プロファイル@ の設定で、 サーバーにキャッシュされません。 の詳細については、 OutputCacheSettingsSectionおよび OutputCacheProfileを参照してください。