Подтвердить что ты не робот

Отключить 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 когда-либо?

4b9b3361

Ответ 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.