Объяснение жизненного цикла приложения WCF в среде размещения IIS 6
Привет всем и спасибо за чтение,
У меня проблема с задержкой, когда моему приложению требуется много времени для запуска при первом вызове после определенного периода с момента последнего вызова. Веб-приложение представляет собой службу WCF, и мы говорим о задержке ~18 секунд до начала фактической обработки. Теперь я считаю, что знаю, как уменьшить эту задержку, так что это не мой вопрос (в любом случае это скорее сделка с переполнением стека)
Мой вопрос: может ли кто-нибудь объяснить мне, почему, несмотря на то, что я отключаю выключение рабочего процесса и рабочий процесс, перерабатывающий приложение, все еще "сворачивается" после неопределенного периода времени бездействия?
Чтобы понять это, мне нужно больше узнать о внутренней работе служб WCF, размещенных в IIS. Я полностью ожидаю, что будет прямой ответ на это.
Большое спасибо за любую помощь, которую вы можете предложить, округ Колумбия
2 ответа
Если на вкладке "Переработка и производительность" рабочего процесса все отключено, IIS не должен прерывать процессы. Существуют ли какие-либо записи в журнале событий, которые соответствуют времени, когда процесс завершается? Мне кажется, что приложение WCF может выйти из строя. WCF не регистрирует исключения в журнале событий, как в стандартном приложении.NET, поэтому, если вы не пишете свои собственные журналы, вы можете включить трассировку WCF, чтобы увидеть, возможно, в этом проблема.
В то же время, быстрое и уродливое решение вашей проблемы может заключаться в создании какой-либо дешевой тестовой транзакции или транзакции только для чтения в вашей службе WCF и просто в настройке приложения или сценария мониторинга, чтобы опрашивать его каждые X секунд, чтобы поддерживать рабочий процесс в коде. предварительно JIT'd.
Я полагаю, что проблема не была связана с WCF, и ошибка заключалась в том, что nHibernate разбирал свои отображения. Я решил это, скомпилировав файлы сопоставления nHibernate, так что nHibernate не пришлось.