Планирование в ASP.NET - PullRequest
       42

Планирование в ASP.NET

0 голосов
/ 19 ноября 2011

По сути, мне нужно простое , но масштабируемое решение для планирования, которое будет использоваться в среде общего хостинга (до тех пор, пока не будет предоставлен выделенный хостинг) для отправки запросов push-уведомлений в Apple (просто запустить и забыть). Он должен срабатывать только во время активных сеансов, но должен возобновить работу при повторном запуске страницы. Мне нужно, чтобы он стрелял примерно каждые две минуты. Но точность не так важна, пока она срабатывает.

Как и в этой статье ( Запланированные задачи в ASP.NET ), я сталкивался с несколькими сайтами (и ответами stackoverflow), которые предлагают использовать таймеры, методы истечения срока действия кэша или потоки для планирования. Но таймеры И истечение срока действия кеша не запускаются для меня в global.asax, а многопоточность просто вызывает отладчик визуальной студии JIT, но я не могу отловить какие-либо исключения в любом коде (проект был создан как веб-сайт http в visual studio, а не веб-проект - так что не проходите через отладчик - просто попробуйте catch - yay).

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

Кто-нибудь успешно получил расписание для работы в .Net в любом качестве?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2011

Asp.net предназначен для ответа на запросы клиентов.

Это не для создания активной программы, которая находится в фоновом режиме, просыпается сама по себе и делает вещи. Хотя вы МОЖЕТЕ сделать это (как вы обнаружили), решения - это хаки.

Вам придется реализовать один из хаков или переосмыслить свои цели.

Вот еще несколько хаков:

http://www.codeproject.com/KB/aspnet/ASPNETService.aspx

http://www.west -wind.com / блог / сообщений / 2007 / Май / 10 / Принуждение-ан-ASPNET-приложение-пребывания-Alive

http://www.mikesdotnetting.com/Article/129/Simple-task-Scheduling-using-Global.asax

1 голос
/ 19 ноября 2011

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

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

б) Распространите ваше приложение немного. Вы можете разработать это одним из двух основных способов. Первым будет настроить командную и управляющую веб-службу в вашем приложении. Затем вы можете создать небольшую утилиту командной строки, чтобы проверить связь с сервисом и сообщить ей о push-уведомлениях. Тогда вам просто нужен подключенный к Интернету компьютер, чтобы запустить команды. Как ваш домашний рабочий стол. Вы также можете перевернуть это и настроить свое приложение таким образом, чтобы оно передавало данные через другой веб-сервис, а мозги push-уведомлений работали в автономном режиме на вашем домашнем ПК. Это немного сложнее, в большинстве случаев я бы выбрал первый вариант.

...