#.net #caching
#.net #кэширование
Вопрос:
есть ли способ отключить кэширование сервера глобально в ASP.NET ? Например, добавив какие-то настройки в файл web.config?
До сих пор я пытался добавить их, и это ничего не изменило…
<caching>
<sqlCacheDependency enabled="false"></sqlCacheDependency>
<outputCache enableOutputCache="false"
enableFragmentCache="false"
sendCacheControlHeader="false"
omitVaryStar="false" />
</caching>
Комментарии:
1. Почему вы хотите отключить его в первую очередь? Если вы скажете «почему», возможно, найдется лучшее решение вашей проблемы. Потому что я не могу представить, что проблема в самом сервере кэша. Если вы его не используете, это вам не помешает.
2. В основном я работаю над этим веб-сайтом, где мне нужно добавить новое содержимое базы данных. Как только это будет добавлено, оно не будет отображаться на сайте до окончания кэширования..
3. Проблема, описанная выше, заключается в том, что раздел OutputCache не используется в качестве верхнего уровня в кэшировании
Ответ №1:
Существует также способ отключить это в system.webServer, если вы используете IIS7 / 7.5 или IIS Express. Это будет работать в вашем основном файле web.config (как для webforms, так и для mvc), а также в файлах web.config во вложенных папках, чтобы отключить его для определенных областей вашего приложения.
<system.webServer>
<caching enabled="false" />
</system.webServer>
Ответ №2:
Раздел OutputCacheSection используется для настройки параметров области приложения, например, включено или отключено кэширование вывода страницы. Например, вы можете отключить кэширование вывода страницы для всего приложения, добавив enableOutputCache="false"
в раздел OUTPUTCACHES в вашем Web.config
файле. Настройки в файле конфигурации имеют приоритет над настройками кэша на отдельных страницах, поэтому приведенная в примере настройка означает, что кэш выходных данных использоваться не будет.
<system.web>
<caching>
<outputCache enableOutputCache="false"/>
</caching>
</system.web>
Ответ №3:
вы можете отключить кэширование выходных данных и состояние сеанса для всего приложения, удалив его модули , это можно сделать из web.config
<httpModules>
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
</httpModules>
или
добавьте это при загрузке страницы
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Комментарии:
1. У меня нет этих модулей в моем web.config, и я уже пытался добавить Response. Кэш. Установить кэшируемость (HttpCacheability. NoCache) в Global.asax безуспешно
2. @user441365 — Ответ. Кэш. Установить кэшируемость (HttpCacheability. NoCache) требуется добавить на уровне страницы не в глобальном.asax
Ответ №4:
вы можете отключить кэширование вывода страницы для всего приложения, добавив enableOutputCache=»false» в раздел outputcaches в вашем файле Web.config.
например
<configuration>
<system.web>
<caching>
<outputCacheSettings enableOutputCache="false"/>
</caching>
</system.web>
</configuration>
Итак, ваша конфигурация не работает, потому что у вас есть enableOutputCache
атрибут в outputCache
элементе, когда он должен быть в outputCacheSettings
элементе.
Комментарии:
1. Это выдает мне сообщение: атрибут enableOutputCache не объявлен
2. Ага, 3.5 ок . Да, вы правы, похоже, что он перешел из OutputCache в outputCacheSettings между 3.5 и 4 — man схема web.config представляет собой ужасный беспорядок! В этом случае ваш оригинал должен был сработать. Одна из возможностей — какой веб-сервер вы используете (против разработчика? IIS? какая версия?)
3. Я запускаю Debug yes, и он все еще кэшируется
4. На самом деле ссылка на MSDN link показывает, что код в этом ответе неверен, текст над кодом правильный.