Мы обновили наш веб-сервер с 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 для запросов и подключений? Раздел processModel в Machine.config.