У нас есть приложение ASP.Net, которое ведет себя странно под IIS6. Само приложение является простой сделкой ASP.Net 2.0 Webforms, здесь нет ничего странного (есть несколько HTTP-модулей в конвейере, но я бы не подумал об этих странных :)). То, что я не понимаю, - это время выполнения страницы, или, точнее, разница между временем, сообщенным трассировкой ASP.Net (trace.axd) и наблюдаемым клиентом (Fiddler). Когда приложение запускается на поле разработчика (WinXP, IIS5.1), времена сообщенные ASP.Net и Скрипач очень близки:Почему мое веб-приложение видит латентность?
Page exec time : 0.0919834 Fiddler Total Sequence time: 0.1560980
Я могу понять, 60мс тратятся получать 5KB ценность данных от IIS для Fiddler (оба из которых работают на одной машине, BTW). Теперь, когда мы переместим код сервера (Win2k3, IIS6), картина резко меняется:
Page exec time : 0.1702014 Fiddler Total Sequence time: 0.5156283
Это та же страница, и Скрипач снова работает на той же машине с кодом. Почему вдруг требуется 350 мс для доставки того же 5 КБ?
PS. На обеих машинах результаты получаются путем обращения к URL-адресу с помощью имени хоста машины, например. http://machinename/app/page.aspx (в отличие от http://localhost/app/page.aspx).
PPS. Конфигурирование, настройки окна разработчика и сервера находятся как можно ближе к ним - оба используют тот же самый web.config. Оба попадают в DB (сервер sql) со встроенным auth, и, следовательно, приложение работает под учетной записью домена. Приложение использует проверку подлинности форм и НЕ выступает в роли олицетворения (т. Е. Всегда работает под одной учетной записью). Теперь, как это работает на IIS5, отличается от IIS6 - на IIS5 учетная запись указана в теге в machine.config, а в IIS6 это параметр AppPool. Настройка кажется довольно типичной для обеих сред, и я не могу себе представить, что она вызывает задержки в 350 мс ...
Nope. Мы используем IE7 для управления Fiddler в обоих случаях, и поскольку IE7 обходит прокси на запросы к localhost, мы должны использовать фактическое имя хоста в обоих случаях. – user8032
Кстати, что вы подразумеваете под «венчурным внешним видом»? Единственное, что я могу подумать, это DNS-запрос, и все это кэшировано задолго до времени теста ... – user8032
, поэтому вы на самом деле вызываете http: // localhost на свой веб-сервер и dev-машину и получаете эти ответы ? Потому что это меняет весь вопрос и, вероятно, следовало бы упомянуть. –