Служба WCF asp.net медленная ... поможет ли отключение утилизации приложений asp.net? - PullRequest
0 голосов
/ 17 апреля 2009

У меня есть служба WCF, для которой требуется определенное время ответа (до 1 минуты).

Моя проблема в том, что время от времени, чаще всего по утрам, служба реагирует долго (иногда более 2 минут).

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

Существуют ли другие причины, по которым это может произойти?

Можно ли отключить утилизацию приложений? И если это так, это вызовет какие-либо побочные эффекты или нестабильность? Я предполагаю, что должна быть причина, по которой приложения asp.net настроены на утилизацию.

Что еще можно сделать, чтобы улучшить производительность при первом запуске?

Ответы [ 4 ]

2 голосов
/ 17 апреля 2009

Да, вы можете предотвратить повторное использование AppPool. Другим вариантом может быть создание задания поддержки активности для непрерывной проверки связи со службой, чтобы рабочий процесс не спал.

1 голос
/ 18 апреля 2009

В основном следующие правила диктуют, когда приложение перерабатывается или выгружается:

  1. После того, как время перезапуска пула приложений достигнуто - я думаю, по умолчанию это каждые 29 часов.
  2. Заданное время после последнего запроса к заявке.

Использование проверки активности для проверки связи с сервисом решило бы 2, и тогда вам просто нужно иметь дело с 1.

В зависимости от вашей версии IIS есть несколько различных способов настройки.

  1. Для IIS 6
  2. Для IIS 7

Время простоя, по-моему, обычно по умолчанию равно "infinte", но его можно настроить с помощью элемента processModel (атрибут idleTimeout) ваших файлов конфигурации.

Что касается первого запуска производительности - не глядя на ваше приложение, трудно сказать, запускали ли вы что-то вроде DotTrace или другой профилировщик поверх него?

Вы выполняете много интенсивного поиска и кеширования данных при первой загрузке? Можно ли их отложить?

0 голосов
/ 18 апреля 2009

Может быть, глупая идея: не могли бы вы запланировать консольное приложение, например, на ваш сервис? В 5:30 утра, чтобы этот запрос мог занять много времени, и у ваших постоянных пользователей, приходящих после этого, такой проблемы не будет?

Конечно - это не имеет отношения к основной причине, но в настоящее время это может быть полезным обходным путем - нет?

Марк

0 голосов
/ 17 апреля 2009

Проблемы с производительностью могут быть вызваны чем-то, что вы не исключили в первую очередь. Так как вы ничего не исключали, это может быть спровоцировано чем угодно.

...