Почему мой сервисный хост постоянно закрыт? - PullRequest
1 голос
/ 03 апреля 2011

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

Обновление 1:

ServiceHost закрывается примерно каждые 5 секунд.Имеется ли в AppPool какая-либо информация журнала утилизации, которую я могу проверить?

Обновление 2:

Я включил ASP.NET healthMonitoring, как предложил Амит, и сразу обнаружил проблему.Старая база кода представляет собой консольное приложение, поэтому оно записывает что-то в папку bin.Но это приводит к закрытию ServiceHost под IIS.Для меня основной файл web.config - это c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config.Это очень легко узнать с помощью procmon.

Ответы [ 2 ]

3 голосов
/ 03 апреля 2011

После изучения вашего описания проблемы, я думаю, ваше приложение записывает содержимое в каталоги, отслеживаемые ASP.NET, и, таким образом, IIS перезагружает домен приложения.

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

Чтобы включить мониторинг работоспособности ASP.NET, вы можете отредактировать "мастер "web.config файл, обычно находится в %systemroot%\microsoft.net\framework\v2.0.50727\config.

  • Сначала найдите <healthMonitoring> в мастере web.config
  • Внутри узла healthMonitoring найдите<rules> узел
  • Внутри правил добавьте следующее:

    <add name="Application Lifetime Events Default" 
         eventName="Application Lifetime Events" 
         provider="EventLogProvider" 
         profile="Default" 
         minInstances="1" 
         maxLimit="Infinite" 
         minInterval="00:01:00" 
         custom="" />
    
  • Воспроизведите проблему и просмотрите журнал событий приложений с исходным ASP.NET 2.0.Это должно регистрировать, почему пул приложений перерабатывается.

3 голосов
/ 03 апреля 2011

Похоже, IIS на вашем dev-сервере либо перезапускается, либо перезапускает AppPool для вашей службы WCF. Каждый раз, когда это произойдет, ваш WCF Singleton будет воссоздан по следующему запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...