Отключить OutputCaching в MVC3 при запуске в DEBUG или в Debugger?
Я пытаюсь отключить кэширование вывода в приложении MVC3 при отладке. Я указываю кэширование вывода в контроллерах (через атрибут), но не хочу, чтобы во всех своих кодах был #if DEBUG. Я ожидал, что это сработает:
// In Web.config.debug
<system.web>
<caching>
<outputCache enableOutputCache="false"
xdt:Transform="Replace" />
</caching>
Но это, кажется, игнорируется. Любые другие идеи, как сделать это в системе без неприятного кода global.asax или #if DEBUG когда-либо?
Ответы
Ответ 1
Файл web.config.debug
используется только при создании пакета развертывания. Если вы запускаете свой сайт локально в Кассини, например, он полностью игнорируется. Поэтому вы можете попробовать отключить кеш в web.config
:
<system.web>
<caching>
<outputCache enableOutputCache="false" />
</caching>
</system.web>
и в вашем web.config.release
включить кеш. Обратите внимание, что если вы не используете функцию пакета веб-развертывания, эти файлы полностью игнорируются.
Ответ 2
Я бы подумал, что это сработает. Вы также можете попробовать установить параметр enableFragmentCache на false. Per эта ссылка:
свойство EnableFragmentCache установите значение false, страница не кэшируется на сервера, независимо от настроек в @Директива OutputCache или кеширование профиль, используемый страницей. Для большего информацию, см. OutputCacheSettingsSection и OutputCacheProfile.