Событие остановки приложения ASP.NET? - PullRequest
1 голос
/ 22 марта 2010

У меня есть приложение ASP.NET, которое реализует пользовательский кэш в памяти. Я использую это в отличие от механизма кэширования ASP.NET, так как мне нужен был более сложный способ для обработки того, что нужно удалить из кэша. Часть этого пользовательского кеша представляет собой отдельный поток, который иногда ищет данные, удаляемые из кеша, когда он становится слишком большим.

Что мне нужно сделать, так это дать сигнал этому потоку обслуживания кэша прекратить работу при выходе из приложения ASP.NET. Я предполагаю, что это в основном равно, когда веб-сайт остановлен в IIS.

Есть ли уже существующее событие, которое я могу использовать для этого? Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 марта 2010

Вы можете создать файл Global.asax и переопределить метод Application_End.

http://www.csharphelp.com/2006/06/setting-up-global-objects-with-the-global-asax-file/

1 голос
/ 22 марта 2010

С того момента, как у вас есть этот пользовательский кеш-память, я полагаю, что ваше приложение asp.net взаимодействует с этим кешем многими способами.

Так почему бы не сделать глобальное значение для этой денежной наличности и сделать что-то подобное в global.asax

void Application_Start(object sender, EventArgs e) 
{
  GlobalCacheUsed ++;
}

void Application_End(object sender, EventArgs e) 
{
  GlobalCacheUsed --;
}

и ваша ветка просто проверяет это GlobalCacheUsed значение

Могу ли я спросить вас, как вы используете связь со своими приложениями? Я сделал что-то похожее с вами, имея класс, который я использую как таблицу базы данных, так и другой кеш, который использует память. Мой триггер для очистки кэша связан с пользовательскими событиями или таймерами.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...