Круглосуточное обслуживание - PullRequest
2 голосов
/ 02 декабря 2011

Я использую ASP.Net MVC 3 C # для создания веб-приложения.У меня есть служба, которая должна быть запущена с интервалом в x минут.Кроме того, некоторые параметры могут быть обновлены или изменены для этой службы.

Я не уверен, какую технологию я должен использовать, чтобы моя служба работала на сервере и была в состоянии остановить ее / запустить ее удаленно, используяИнтерфейс ASP.Net MVC (веб).

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

Любые предложения, поскольку это мой первый большой проект.Чистый проект:)

Спасибо

Ответы [ 5 ]

1 голос
/ 02 декабря 2011

Вы можете использовать Quartz.NET , так как на сайте говорится: "Quartz.NET - это полнофункциональная система планирования заданий с открытым исходным кодом, которую можно использовать от самых маленьких приложений до крупномасштабных корпоративных систем".

1 голос
/ 02 декабря 2011

Это зависит от того, какой контроль над средой вы используете. Если это ваш сервер и у вас есть достаточные права на него, вы можете:

  1. Напишите службу Windows, в которой есть таймер, который просыпается и выполняет запрос Http в вашем веб-приложении.

  2. Настройка запланированного задания, которое запускает сценарий VB (или аналогичный) для вызова вашего веб-приложения.

Одна вещь, которую я бы не рекомендовал делать, - это использовать фоновый поток в вашем веб-приложении, на котором есть таймер. Вы можете сделать это (http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29), но по своей сути это небезопасно, если домен веб-приложения отключен.

Если вы развертываете на интернет-провайдера, на виртуальном хостинге или по какой-то причине вы можете только развернуть свое веб-приложение и ничего больше, вам потребуется сценарий, который запускается в другом месте и вызывает веб-приложение. Большинство интернет-провайдеров, даже на виртуальном хостинге, позволят вам настроить запланированное задание. Затем вы можете загрузить простой скрипт VB, например, в cgi-bin, который вызывает веб-приложение (http://chriscant.phdcc.com/2011/05/scheduled-task-ping-for-plesk-in.html).

Я как раз собираюсь реализовать последнее решение самостоятельно.

0 голосов
/ 02 декабря 2011

Я бы сделал приложение, которое должно запускаться каждые x минут, консольным приложением, которое считывает его настройки из файла XML или базы данных. Затем настройки можно изменить в приложении Asp.NET MVC. Вам также понадобится служба Windows, которая запускается постоянно, чтобы запускать консольное приложение каждые x минут. Также интервал и, возможно, включенное свойство могут быть установлены через приложение Asp.NET.

0 голосов
/ 02 декабря 2011

Вы можете разработать консоль, как уже предлагалось.Тем не менее, ваш запрос больше о том, как его реализовать.У вашего клиента есть какой-либо планировщик.Обычно планировщики имеют свои собственные веб-интерфейсы или API, которые позволяют вам управлять эксплуатационными аспектами.

Обратитесь сюда, если хотите вызвать Службы Windows через .Net

0 голосов
/ 02 декабря 2011

если у вас есть выделенный сервер, вы можете воспользоваться службой Windows.Иначе мы можем создать веб-сервис.Этот веб-сервис будет вызываться из таймера, который будет запускаться автоматически через определенный промежуток времени.и этот таймер необходимо запустить в событии application_start, указанном в файле global.asax.

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