Azure: объединение веб-роли и рабочей роли: перезапуск пула приложений - PullRequest
2 голосов
/ 14 ноября 2011

Я планирую сделать небольшую обработку фона в Azure. У меня уже есть веб-ролик, и я хотел бы использовать ту же роль, чтобы мне не приходилось использовать (и платить!) Выделенную рабочую роль для этого.

Я прочитал, что могу просто переопределить Run() в классе WebRole, который является производным от RoleEntryPoint, и реализовать там мое «планирование бедняков». Он должен периодически получать сообщения из очереди и обрабатывать их.

Теперь мой вопрос: WebRole работает в своем собственном процессе или потоке, или, что более важно, что происходит с WebRole, когда пул приложений / домен приложений перерабатывается?

Ответы [ 2 ]

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

Добавить к ответу @ dunnry;также интересно то, что run вызывается для копии вашей сборки в этой папке:

e:\approot\bin

В то время как IIS указывает на другую копию вашего приложения в этой папке:

e:\siteroot\0
2 голосов
/ 15 ноября 2011

Если вы работаете в режиме Full IIS (доступно 1.3 SDK и далее), RoleEntryPoint и IIS находятся в разных процессах.Вы будете знать, что используете режим Full IIS, если у вас в элементе ServiceDefinition есть элемент <Sites>.

IIS фактически запускает ваш сайт в w3wp.exe (как вы обычно и ожидаете) как собственный appPool.Код RoleEntryPoint запускается и создается с помощью совершенно другого процесса, поэтому между ними нет никакой связи (например, сбой одного не повлияет на другой).

...