БЫЛ хостинг противХостинг служб Windows
Вопрос
Я работаю над проектом, использующим Windows 2008, .NET 3.5 и WCF для некоторых внутренних служб, и возник вопрос о том, как разместить службы.
Поскольку мы используем Windows 2008, я подумал, что было бы неплохо воспользоваться преимуществами службы активации процессов Windows (WAS), хотя в проекте, похоже, создается впечатление, что использование служб Windows было бы лучше.
Итак, в чем же недостаток использования WAS для размещения служб WCF по сравнению со службой Windows?Есть ли какие-то реальные преимущества в использовании служб Windows или это правильный путь?
Решение
Недавно мне пришлось ответить на очень похожий вопрос, и это причины, по которым я решил использовать IIS 7.0 и был вместо инфраструктуры обслуживания Windows.
- IIS 7.0 - гораздо более надежный хост, и он поставляется с многочисленными функциями, упрощающими отладку.Отслеживание неудачных запросов, повторное использование рабочего процесса, сиротство процесса - вот лишь некоторые из них.
- IIS 7.0 предоставляет вам больше возможностей указать, что должно происходить с рабочим процессом при определенных обстоятельствах.
- Если вы размещаете свою службу под управлением IIS, ей не назначен рабочий процесс до самого первого запроса.Это то, что было желаемым поведением с моей точки зрения, но в вашем случае оно может быть другим.Служба Windows предоставляет вам возможность запускать вашу службу более детерминированным способом.
- По моему опыту, WAS сам по себе не обеспечивает повышенной надежности.Его самое большое преимущество заключается в том, что он предоставляет возможности IIS приложениям, использующим протоколы, отличные от HTTP.Под разными я подразумеваю:TCP, именованные каналы и MSMQ.
- Единственным недостатком использования было то, о чем я знаю, это то, что адрес, по которому предоставляется ваш сервис, должен соответствовать какому-то шаблону.Описано, как это выглядит в случае MSMQ здесь