Мы обновили наш веб-сервер с Windows Server 2003 до Windows Server 2012 R2. Рассматриваемое веб-приложение работает с ASP.NET 4.0. Веб-приложение, в свою очередь, взаимодействует со сторонним веб-API.
Вскоре после обновления задержка веб-API увеличилась, что, в свою очередь, привело к значительным тайм-аутам. Я подозревал, что в IIS 8.5 количество разрешенных одновременных запросов увеличилось, что привело к увеличению пропускной способности, которую веб-API не смог обработать. Однако:
Когда мы откатили обновление, задержка вскоре после этого упала. Маловероятно, что это совпадение, поэтому, если все остальное остается прежним, в Windows 2012 R2 или IIS 8.5 должно быть что-то внутреннее, влияющее на веб-API. Сторонние разработчики веб-API подтвердили, что в их пространстве ничего не изменилось, и, к сожалению, я не могу собрать никакой дополнительной информации.
Я проверил журналы IIS для версии 6 и 8.5: среднее (и медианное значение) количество запросов в секунду, минуту и час указывает на то, что в IIS 8.5 было обработано больше запросов (я использовал Log Parser Studio для анализа журналов). Однако ничто не указывает на то, что это должно быть именно так. У кого-нибудь есть идеи или предложения? Если есть настройки, управляющие этим, то пока я бы хотел, чтобы веб-приложение вело себя одинаково в Windows Server 2003 и 2012 R2.
Пытались ли вы запустить пул приложений в классическом режиме (архитектура IIS 6) в сравнении с интегрированным режимом, в то время как в IIS 8.5? Может быть, что-то с новой интегрированной моделью конвейера повлияло на переход.
Видели ли вы запросы, поставленные в очередь во время события?
Вы настроили параметры IIS для запросов и соединений? Процесс Machine.configРаздел модели.