Я хотел бы сбросить/очистить элемент в кеше, но без сброса приложения или написания специализированной страницы только для этого. т.е. непрограммное решение. Это возможно?Можно ли очистить кэш приложения ASP.NET без сброса AppDomain?
ответ
Короткий ответ: Нет
ASP.NET Cache не имеет интерфейс администрирования, чтобы управлять ею. Вам нужно будет переработать пул приложений или создать простую страницу, чтобы сделать Delete Items from the Cache in ASP.NET.
EDIT: Вдохновленный на Mick ответ, вы могли бы иметь страницу, как это (RemoveCache.aspx
):
<%@ Page Language="C#" %>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Request.QueryString["name"]))
{
foreach (DictionaryEntry item in Cache)
{
Cache.Remove(item.Key.ToString());
Response.Write(item.Key.ToString() + " removed<br />");
}
}
else
{
Cache.Remove(Request.QueryString["name"]);
}
}
</script>
Если вы звоните RemoveCache.aspx
все кэш будет удален; работает RemoveCache.aspx?name=Products
, только Products
запись в кэш будет удалена.
Это не сработает. Вы не можете изменять коллекцию в цикле 'foreach'. – SLaks
@Slaks, я просто побежал сюда без серьезных проблем (просто отсутствует .ToString()); можете ли вы подтвердить эту проблему? –
ОК, спасибо ребята. Но для написания нового кода необходимо перезагрузить AppDomain. Я не боюсь писать код, просто хотел сделать это, не перезагружая приложение! – Bryan
У вас есть только код VB.NET, но почему бы не цикл через кеш, удаляющий элементы?
For Each de As DictionaryEntry In HttpContext.Current.Cache
HttpContext.Current.Cache.Remove(DirectCast(de.Key, String))
Next
С уважением
Это не сработает. Вы не можете изменять коллекцию в цикле 'Для каждого'. – SLaks
Dim CacheKeys As New List(Of String)
For Each CacheItem As DictionaryEntry In Cache
CacheKeys.Add(CacheItem.Key)
Next
For Each Key As String In CacheKeys
Cache.Remove(Key)
Next
Это, кажется, проходят через кэш и удалить элементы, но не очистить кэш ответа. Если вы заходите на веб-страницу с помощью FormsAuthentication, переходите к веб-странице, выходите из системы, а затем просто вводите этот URL-адрес в адресную строку, чтобы он возвращал вас на эту страницу. Когда вы нажимаете на что-либо, он возвращает вас на страницу входа, потому что вы не аутентифицированы, но страница по-прежнему отображается в кеше, даже если кэш очищается при нажатии кнопки выхода из системы. Установка Cachability в NoCache не работает, потому что все GridViews, которые используют событие DataBound, показывают, что истекло при использовании кнопки «Назад». Я все еще ищу подходящее решение для очистки кеша для этого случая.
- 1. Можно ли очистить кэш NCache без подтверждения?
- 2. ASP.NET Очистить кэш
- 3. как очистить кэш JAVA приложения
- 4. Сброс маршрутов mpc asp.net без сброса приложения
- 5. Можно ли очистить ByteArrayOutputStream
- 6. Можно ли поднять только AppDomain?
- 7. ASP.net MVC Отправить Очистить кэш страницы
- 8. Android: очистить кэш программно
- 9. Можно ли очистить localStorage для конкретного приложения?
- 10. Как очистить кэш другого приложения в Android?
- 11. Очистить загруженный кэш приложений .NET без Mage?
- 12. Кэш приложения ASP.Net для веб-служб
- 13. Redeploy asp.net web api/mvc app без сброса iis
- 14. Кэш Fast Out-Proc для приложения ASP.Net
- 15. Как очистить кэш?
- 16. Очистить кэш Chicagoboss
- 17. Как очистить кэш UserPrincipal
- 18. Как очистить кэш ResourceBundle
- 19. Кэш приложения ASP.NET для хранения пользовательских данных
- 20. Можно ли очистить NSDatePicker?
- 21. Можно ли очистить память?
- 22. Можно ли очистить общие предпочтения, используя кэш-память, и если да, то как очистить его?
- 23. PHP simplexml_load_file() очистить кэш
- 24. Linux очистить кэш
- 25. Orchard программно очистить кэш
- 26. Как очистить кэш OSMdroid
- 27. Как очистить кэш Infinispan
- 28. Как очистить кэш веб-журнала
- 29. Как очистить кэш ObjectDataSource вручную
- 30. ASP.NET и выходной кэш - как можно увидеть, работает ли он?
Не волнуйтесь, напишите код;) – Pierreten