Table of Contents
Установка службы планировщика
Проект сервиса находится в SVN DevPark.WinterQueen.Scheduler.
Для функционирования планировщика необходимо создать базу данных. БД создается вручную, таблицы и необходимые связи с помощью скриптов из проекта: Sql/tables.sql, Sql/table_history.sql
Собранный проект копируем в любое удобное место.
Правим DevPark.WinterQueen.Scheduler.exe.config:
- задаем адрес endpoint'а http://localhost:8733/SchedulerWcfService/
- указываем строку подключения к созданной базе данных планировщика в параметре quartz.dataSource.myDS.connectionString
Запускаем консоль с правами администратора. Если запустить DevPark.WinterQueen.Scheduler.exe в консольном режиме без ключей, то сервис начнет работать из консоли. Для установки сервиса используются ключи: -i -a=User|LocalService|LocalSystem|NetworkService. Должна быть использована учетная запись с правами на БД планировщика.
Веб-интерфейс для XAF-приложения
Уже собранный проект находится в SVN в каталоге DevPark.WinterQueen/DevPark.WinterQueen.Web/scheduler. Можно просто всю папку брать и копировать в production. При этоv интерфейс будет доступен по адресу <основной сайт>/scheduler/index.aspx.
В bin добавились: PostSharp.dll, DevPark.WinterQueen.Scheduler.Web.dll
В корневую папку веб-сайта копируем Proxy.svc, jobs.json (тут список задач для автосоздания, надо будет установить время запуска нужное (http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html), а то сейчас каждую минуту; <connectionString> так и оставляем).
Добавляем в web.config:
<system.serviceModel> <client> <endpoint address="http://localhost:8733/SchedulerWcfService/" behaviorConfiguration="scheduler" binding="webHttpBinding" name="scheduler" contract="DevPark.WinterQueen.Scheduler.ISchedulerWcfService" /> </client> <behaviors> <endpointBehaviors> <behavior name="scheduler"> <webHttp /> </behavior> <behavior name="proxy"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> <bindings> <webHttpBinding> <binding name="proxy" allowCookies="true" contentTypeMapper="DevPark.WinterQueen.Web.RawContentTypeMapper, DevPark.WinterQueen.Web"> </binding> </webHttpBinding> </bindings> <services> <service name="DevPark.WinterQueen.Web.Proxy"> <endpoint address="" behaviorConfiguration="proxy" binding="webHttpBinding" bindingConfiguration="proxy" contract="DevPark.WinterQueen.Web.Proxy" /> </service> </services> </system.serviceModel>
