Поиск страницы aspx return slow

У меня есть сайт asp.net, есть searchResult.aspx, он запускает sql-скрипт для извлечения данных из базы данных MS SQL Server, а затем помещает данные в формат HTML, сайт был развернут на сервере IIS7.5. Я реализовал как статическое, так и динамическое сжатие, что означает, что все мои страницы js, css и aspx были сжаты до отображения в браузере.

К сожалению, searchResult.aspx возвращается очень медленно, если вы ищете большое слово, например, биографию, оно возвращается в среднем более 10 секунд. и я использовал Firebug Net для отслеживания, блокировки, поиска DNS, подключения и отправки всего не более 10 мс, но ожидание занимает более 10 секунд. Поэтому я добавил код в начало и конец функции Page_Load (отправитель объекта, EventArgs e), а также начало и конец элемента тела HTML, как показано ниже:

protected Stopwatch stopwatch = new Stopwatch();
 protected void Page_Load(object sender, EventArgs e)
 {
 stopwatch.Start();
 ....
 stopwatch.Stop();
 timeForSearch = stopwatch.Elapsed.Milliseconds;
 }


 
 <%
 stopwatch.Reset();
 stopwatch.Start();
 %>
 ....


 <%stopwatch.Stop();%>
 <%=timeForSearch%>+<%=stopwatch.Elapsed.Milliseconds%>=<%=stopwatch.Elapsed.Milliseconds + timeForSearch%>

Хорошо, обычно timeForSearch и время для заполнения страницы aspx составляют 1 секунду, но для загрузки страницы требуется более 10 секунд, любая помощь будет оценена.

спасибо за ответ, страница aspx была gzip до 8.2KB. не большой файл

2 ответа

Я подумал, что, возможно, я его исправил, я отключил журнал IIS, после чего страница поиска может быть загружена в течение 3-5 секунд, кажется, улучшилось. Но я все еще думаю о том, что отключение журнала IIS является хорошим выбором.


Попробуйте установить для свойства Trace директивы @Page значение true.

<%@ Page ... Trace="true" %>

В разделе "Информация о трассировке" вы определите, какое событие жизненного цикла страницы требует больше времени для выполнения и, возможно, поможет вам отлаживать.

Вы используете мастер-страницы? У вас есть пользовательские элементы управления на своей странице? События управления пользователями происходят после их родительских событий. Т.е., UserControl.Init происходит после Page.Init (но до Page.Load), а UserControl.Load - после Page.Load.

Если это так, вы можете изучить страницу PageLoad в этих элементах управления.

licensed under cc by-sa 3.0 with attribution.