Как и когда выполнять операции очистки на стороне сервера ASP.NET - PullRequest
2 голосов
/ 11 октября 2010

У меня есть веб-сайт ASP.NET со страницами ASPX и веб-службами ASMX.Я хочу выполнить операцию очистки на стороне сервера, которая может быть относительно длительной (удаление временных файлов).По причинам, в которые я не буду вдаваться, важно, чтобы никакие запросы (ASPX или ASMX) не обрабатывались во время выполнения этой операции.

В идеале я хотел бы выполнить это, когда запросов нет.Каков наилучший способ сделать это?Я думаю об одном из следующих:

  1. Определите, когда нет запросов, затем начните операцию, но остановите операцию, как только запрос получен.Это вообще возможно?Кто-нибудь может предложить механизм для этого?
  2. Выполняйте операцию каждый раз при перезагрузке рабочего процесса ASPNET.Если так, есть ли событие для этого?Вызывается ли Application_Start каждый раз, когда рабочий процесс ASPNET перезагружается?
  3. Запланируйте эту операцию регулярно (например, один раз в день) и приостановите все запросы в течение этого периода.Есть ли способ автоматизировать приостановку запросов во время выполнения моей операции?

Дополнительно:

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

1 Ответ

1 голос
/ 11 октября 2010

Если вам нужно отключить запросы, вы можете использовать флаг в сеансе / базе данных, чтобы отметить, что ведется техническое обслуживание.Затем в вашем коде вы можете отобразить страницу с ошибкой при поступлении запроса, когда этот флаг установлен.Вы могли бы даже оценить запрос и иметь «черный список» URL-адресов, которые не могут быть обработаны во время обслуживания.

Что касается его отключения, если вы используете решение с флагом базы данных, вы можете использовать Sql Serverработа, чтобы сделать все это, включая планирование этого.

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