2010-07-30 5 views
1

Я хотел бы разместить службу WCF в IIS 7. Я не знаком с этой темой, но сотрудник обеспечил мне, что IIS собирается закрыть размещенную службу через некоторое время («дни») независимо от того, что ,Закрывает ли IIS сервисы? Как я могу это предотвратить?

Когда IIS фактически отключает мои услуги автоматически? Как настроить его, чтобы он постоянно работал (даже если они не выполняют какую-либо фактическую работу)?

+0

Почему? Что ты пытаешься сделать? – SLaks

+0

Я пытаюсь иметь дело с искалеченной архитектурой, которая обременяет меня странными требованиями. – mafu

+0

Возможно, вы должны создать обычный сервис. – SLaks

ответ

3

Веб-сервис в IIS размещен как приложение, владеющее пулом приложений. Обычно эти пулы настроены на повторное использование себя через регулярные интервалы - например, эта служба будет перезапущена.

В настройках пула приложений (внутри inetmgr-консоли) можно дезактивировать эти рециркуляции (в разделе «Дополнительные настройки» -> «Конфигурация рециркуляции»).

О сбое восстановления существует возможность настроить их также в этих настройках, но я не уверен, действительно ли они делают то, что вы ожидаете от них.

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

2

IIS может разгрузить AppDomain службы в любое время для сохранения памяти.

Если запрос приходит на конечную точку (ы) службы, IIS будет повторно загружать службу, и запрос будет обрабатываться в обычном режиме.

Что касается обслуживания, это ничем не отличается от повторной загрузки сервера.

Это будет проблемой только в том случае, если вашему сервису необходимо запустить (а не просто слушать) постоянно, чтобы выполнить какую-то фоновую обработку.
Если это так, вы должны написать обычную службу Windows и не использовать IIS.

Смежные вопросы