Планировщик скриптов .NET - PullRequest
1 голос
/ 26 апреля 2011

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

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

РЕДАКТИРОВАТЬ: у меня есть доступ ко всем функциям на сервере

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

Вариант 1 : самым чистым решением было бы написать приложение Windows, которое выполняет работу (вместо страницы aspx), и запланировать это приложение на сервере с помощью планировщика задач Windows. Это имеет несколько преимуществ перед подходом aspx:

  • Вы можете использовать функции планировщика задач Windows (записи в журнале событий, если задача не может быть запущена, просмотреть время последнего запуска, запустить задачу в контексте определенного пользователя и т. Д.).
  • Вам не нужно «симулировать» вызов браузера.
  • Ваша страница не может быть «случайно» вызвана пользователем или поисковой системой.
  • Это концептуально чище: главная цель веб-страницы - предоставить клиенту информацию, а не инициировать действие на сервере.

Конечно, есть и недостатки:

  • У вас есть два проекта Visual Studio вместо одного.
  • Возможно, вам придется включить общий код в общую библиотеку классов. (Это также можно рассматривать как преимущество.)
  • Ваша система становится более сложной и, следовательно, потенциально сложной в обслуживании.

Вариант 2 : Если вам нужно придерживаться страницы aspx, возможно, самое простое решение - вызвать страницу через веб-клиент командной строки в запланированной задаче. Поскольку Windows не предоставляет никаких встроенных веб-клиентов командной строки, вам необходимо загрузить один из них, например wget или curl. Этот связанный вопрос SO содержит необходимый синтаксис командной строки:

0 голосов
/ 26 апреля 2011

Вы можете использовать http://quartznet.sourceforge.net/ Quartz Job Scheduler.

С Quartz.net вы можете написать работу, которая будет запрашивать вашу веб-страницу с выбранным вами интервалом.

или в качестве альтернативыВы можете написать службу Windows, которая будет запрашивать эту веб-страницу.

0 голосов
/ 26 апреля 2011

используйте этот пример для планирования задачи в asp.net:

введите описание ссылки здесь

тогда вам нужно создать Hit.aspx страницу, которая будет делать то, что вы хотите. тогда вы должны вызывать эту страницу каждый раз (используя WebClient класс) истекшее время выполнения задачи!

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