2011-03-13 6 views
16

Próbuję wyłączyć buforowanie danych wyjściowych w aplikacji MVC3 podczas debugowania. Określam buforowanie wyjściowe w kontrolerach (za pośrednictwem atrybutu), ale nie chcę, aby #if DEBUG na całym moim kodzie. Spodziewałem się, że to zadziała:Wyłączyć OutputCaching w MVC3 podczas uruchamiania w DEBUG lub pod Debugger?

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

Ale wydaje się to być ignorowane. Wszelkie inne pomysły, jak to zrobić, bez użycia nieprzyjemnego kodu global.asax czy #if DEBUGs w dowolnym miejscu?

Odpowiedz

31

Plik web.config.debug jest używany tylko podczas budowania deployment package. Jeśli uruchomisz swoją lokalnie lokację w Cassini, na przykład zostanie ona całkowicie zignorowana. Więc można spróbować wyłączyć pamięć podręczną w swojej web.config:

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

iw swoim web.config.release włączyć cache. Pamiętaj jednak, że jeśli nie użyjesz funkcji Web Deployment Package, te pliki zostaną całkowicie zignorowane.

+0

Znalazłem to tuż po. Przeniesiono to do wersji Release i ustawiono na "true". Dzięki. –

+2

Ta konfiguracja wydaje się nie działać w IIS Express 8 :(Dlaczego? – Freshblood

0

Myślę, że to też by zadziałało. Możesz także spróbować ustawić opcję enableFragmentCache na wartość false. Za this link:

własnością EnableFragmentCache jest ustawiona na false, strona nie jest buforowane na serwerze , niezależnie od ustawień w @ dyrektywy OutputCache lub buforowania profilu stosowanych przez strony. Więcej informacji na temat można znaleźć w sekcji OutputCacheSettingsSection i OutputCacheProfile.

Powiązane problemy