Я слежу за выполнением моего сайта и всего медленного исполняемого кода ( > 1s), более 90% из-за System.Web.HttpRequest.GetEntireRawContent() (вызывается System.Web.HttpRequest. FillInFormCollection())
Является ли это обычным для сайтов ASP.NET... иногда тратить более 10 секунд на метод FillInFormCollection (очевидно, он вызван из System.Web.UI.Page.PerformPreInit())?
Или есть способ исправить эту проблему?
Я компилирую для .NET Framework 3.5.
Страница У меня в основном проблема - это страница входа, хотя в ней нет ничего необычного - две кнопки TextBoxes, Checkbox for RememberLogin и Login. Request.ContentLength составляет около 5 КБ (я зарегистрировал Request.Form.ToString() - ничего необычного не нашел). Я выполнил много трассировки (ожидали огромные POST) и отлаживал, но не смог найти рациональную причину, по которой FillInFormCollection займет больше 10 секунд (однажды у меня был экстремальный пример с 250 секундами). Я даже пытался замедлить связь с Fiddler, но не смог воспроизвести проблему.
EDIT: Спасибо за все комментарии ребята. Я продолжал заниматься этим вопросом... если он будет решен, по крайней мере, это спасет других людей совсем некоторое время;). Вот ответы на некоторые из вопросов.
- Это простой HTTP (не HTTPS), 0 ошибок в журнале (смешно, что запросы действительно завершаются;)
- Сайт не загружается, когда пользователь нажимает Login.aspx. На самом деле сайт работает довольно неплохо в 99% случаев (обрабатывает около 40 миллионов HTTP-запросов в неделю при загрузке процессора AVG ниже 10%).
- Это определенно application/x-www-form-urlencoded - ASP.NET Forms (runat = server) получают таким образом. Единственное, что я не понимаю, - это то, почему .NET требуется > 10 секунд для чтения POST менее 6 КБ.
- Единственным рациональным заключением, к которому я пришел (до сих пор), является: → клиенты, обращающиеся к сайту из очень медленных соединений (помните GPRS?), Но я бы очень хотел изучить все другие варианты, а не просто прибегать к "его подключению пользователей". И если это так, я ожидаю, что я увижу подобное, что происходит для пользователя на каждой странице.
- Просто надеюсь, что это не так: Сервер IIS 6.0 слишком загружен HTTP 503 Connection_Dropped DefaultAppPool
- Ссылка на эту страницу: Определение медленных уязвимостей HTTP-атаки в веб-приложениях Возможно, это происходит.