Перемещение службы WCF из IIS в службу Windows - PullRequest
3 голосов
/ 26 сентября 2008

У нас есть существующая служба WCF, которая использует wsDualHttpBinding, чтобы включить обратные вызовы для клиента. Я подумываю переместить его в netTcpBinding для повышения производительности, но я весьма осторожен с тем, чтобы отойти от службы, расположенной на IIS («зона комфорта», которой мы в настоящее время наслаждаемся), на создание собственной службы Windows для размещения. Я надеялся, что мы все еще сможем разместить это на IIS 7, но Win2K8 не станет для нас реальностью в течение некоторого времени.

На что следует обращать внимание при создании нашей собственной службы Windows для размещения нашей службы WCF? Такие вещи, как управление временем жизни и регулирование запросов - это функции, которые предоставляются бесплатно с хостингом IIS, поэтому я также хотел бы знать, как мы можем эффективно разместить наш сервис самостоятельно без удобства, когда IIS выполняет тяжелую работу за нас. Спасибо! :)

Ответы [ 2 ]

11 голосов
/ 26 сентября 2008

Так как вы не можете хостить с использованием WAS, вам нужно понять пару вещей.

  • Если служба аварийно завершает работу, она не перезапускается по умолчанию (хотя вы можете изменить это в свойствах службы)
  • IIS перезапустит пул приложений, если он зависнет или станет слишком большим; вы должны сделать это сами, если хотите такой же надежности.
  • Вы должны создать учетную запись для запуска службы или использовать одну из служб по умолчанию. Не поддавайтесь искушению запустить службу как СИСТЕМА или под учетной записью администратора; если вы хотите использовать встроенную учетную запись, используйте NETWORK SERVICE.
  • Становится труднее отлаживать на месте.
  • Рассмотрите возможность использования регистратора ошибок, такого как log4net

Сказав, что я развернул комбинацию услуг WCF / Windows для клиента 9 месяцев назад; он активно используется и ни разу не умер.

Вы можете запросить газ в службе Windows, это часть конфигурации WCF. Обратите внимание, что значения по умолчанию очень низкие, вероятно, вам придется увеличить их.

2 голосов
/ 26 сентября 2008

Хостинг в приложении-службе Windows (http://msdn.microsoft.com/en-us/library/ms734781.aspx) - хорошее начало.

Если вы можете разместить свою службу в Vista, вы также можете воспользоваться службой активации процессов Windows (WAS). WAS - это обобщение активации процессов IIS, которое можно использовать для активации процессов через конечные точки, отличные от HTTP (TCP, Named Pipe, MSMQ). Чтобы узнать больше о WCF, размещенном в WAS, прочитайте http://msdn.microsoft.com/en-us/library/ms733109.aspx. Чтобы узнать, как установить и настроить WAS, прочитайте http://msdn.microsoft.com/en-us/library/ms731053.aspx.

...