У меня есть приложение ASP.NET MVC 3 с базой данных SQL Server 2005.Он связан с базой данных с помощью LINQ to SQL.В некоторых случаях база данных обновляется приложением, но иногда она все еще кэширует старые данные, которые не должны кэшироваться.
Например, если пользователь заполняет форму для публикации BlogEntryComment
(один из моих типов LINQ to SQL), он будет добавлен в базу данных.Но новый BlogEntryComment
не будет отображаться в моих представлениях, которые его запрашивают.Кроме того, если я удаляю BlogEntryComment
, он все равно отображается в представлениях.Вот что я определил в отношении этого поведения:
Это не вызвано кэшированием браузера.Я очистил кэш;пробовал одновременно в разных браузерах и на разных компьютерах;безрезультатно.
Это не происходит с типами «верхнего уровня», такими как мой тип BlogEntry
.Это происходит с типами типа BlogEntryComment
, которые имеют отношение (один BlogEntry
ко многим комментариям) с моими типами «верхнего уровня».
Если я перезагружаю сервер илипопробуйте его на другом сервере, кажется, он очищает любой кэш, в котором он находится, и я не получаю ошибочных результатов.
Это в конечном итоге покажет обновленные данные, но занимаетдо 15 минут, чтобы он наконец появился.
Я пытался отключить все виды кеша, которые мне удалось найти в Web.config:
...
<system.web>
...
<caching>
<outputCache enableOutputCache="false" enableFragmentCache="false">
</outputCache>
</caching>
<httpRuntime enableKernelOutputCache="false" />
</system.web>
<system.webServer>
...
<caching enabled="false">
</caching>
</system.webServer>
...
... но без везения.Есть идеи?