Первый звонок в C# webservice очень медленный - анализ

Этот вопрос действительно связан с анализом - как мне проанализировать причину проблемы?

Ситуация - у нас есть веб-служба C#, настроенная через IIS 7.5, и веб-сайт в том же домене интрасети, который подключается к веб-службе методами POST и GET. Сервер Windows 2008 R2 64-разрядный, C# является 4.0. Первый звонок дня медленный (30-60 секунд), хотя я не проверял, повторю ли я позже в тот же день, он тоже медленный. Последующие звонки 2-3 секунды. При проверке с использованием веб-консоли FireFox или firebug время тратится на "Ожидание" веб-службы.

Вещи, которые я пробовал:-

  • Установка времени перезапуска для веб-службы AppPool
  • Установка времени ожидания простоя для веб-службы AppPool
  • Установка proxy bypassonlocal = true и использует systemdefault = false в случае, если проблема поиска прокси

Пока ничего не получалось. Я думаю, что даже если он компилируется в C# с машинным кодом при первом запуске, он не должен "истекать", если AppPool не останавливается или не перезагружается, но каждый день работает медленно.

Так просто из вариантов, как мне найти источник проблемы? Любая диагностика, которую я могу запустить на сервере, чтобы проверить, что делает веб-служба?

1 ответ

Решение

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

Я видел, как такое поведение наблюдается во многих моих приложениях.NET IIS, может быть, по меньшей мере, неприятно!

Это, однако, поведение по умолчанию.NET, но есть способы держать ваше приложение активным, особенно начиная с.NET4.

Я отсылаю вас к следующей статье в качестве первого шага. Попробуйте и посмотрите, если это имеет какое-то значение для вас: https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/

Удачи!

Другие вопросы по тегам