Проблема с ASP.NET - Firebug показывает странное поведение

У меня есть приложение ASP.NET, которое выполняет чтение большой базы данных. Он загружает сетку внутри панели обновления. В VS2008, просто запущенном на моем локальном компьютере, он работает фантастически. В производстве (идентичный код, только что опубликованный и размещенный на одном из наших сетевых серверов) он работает медленно, как грязь.

Для отладки установлено значение false, поэтому это не причина замедления. Я не опытный веб-разработчик, поэтому не стесняйтесь предлагать очевидное.

Я использовал Firebug, чтобы определить, что происходит, и вот что обнаружилось:

На продакшене около 500 запросов. Полоса шкалы времени очень короткая. Столбец размера меняется от запуска к запуску, но всегда остается неизменным на протяжении всего цикла.

Локально поступает около 30 запросов. Полоса шкалы времени занимает все пространство.

Может ли кто-нибудь пролить свет на то, почему это происходит, и что я могу сделать, чтобы это исправить? Кроме того, я ничего не могу найти в Интернете по этому поводу, поэтому любые ссылки тоже будут полезны.

РЕДАКТИРОВАТЬ: я забыл упомянуть, что я использую одну и ту же базу данных как для локальной, так и для производственной среды.

РЕДАКТИРОВАТЬ: __EVENTTARGET указывает на таймер, который обновляет прогресс.

РЕДАКТИРОВАТЬ: Таймер, похоже, работает - я установил его на больший интервал, который показывает мне, что локальное приложение обрабатывает ~ 50000 записей в секунду и что производственное приложение (та же база данных, тот же код!) Обрабатывает в лучшем случае ~ 5000 записей / сек.

Вернемся к истокам, загадочно медленное приложение. :(


person Brandi    schedule 01.06.2010    source источник
comment
Кстати, это ASP.NET, а не ASP .NET.   -  person John Saunders    schedule 01.06.2010
comment
Каков характер запросов? У них есть набор __EVENTTARGET? Также вам может показаться, что для отслеживания трафика проще использовать скрипач, чем сворачивать и разворачивать панели в firebug! fiddler2.com/Fiddler2/version.asp   -  person Martin Smith    schedule 01.06.2010
comment
Спасибо, что привели меня к этому ... __EVENTTARGET установлен на таймер. Это должно сделать обновление, чтобы сообщить пользователю, какой прогресс был достигнут. В любом случае, возможно, при производстве этот интервал таймера игнорируется?   -  person Brandi    schedule 01.06.2010
comment
Если вы получаете множество запросов на таймер, я предполагаю, что либо интервал таймера должен быть очень коротким (как вы это устанавливаете?), Либо на странице должно быть несколько экземпляров (вы случайно не создаете новый таймер внутри каждой строки в вид сетки?)   -  person Martin Smith    schedule 02.06.2010
comment
Я установил таймер на больший интервал - 1 секунду. Он показал мне, что таймер работает, но по какой-то причине локальное приложение обрабатывает ~ 50000 записей в секунду, а производственное приложение обрабатывает в лучшем случае ~ 5000.   -  person Brandi    schedule 02.06.2010
comment
Привет, какая версия IIS работает в производственной среде?   -  person LesterDove    schedule 02.06.2010


Ответы (4)


Я предполагаю, что размер базы данных, которую вы используете на своем устройстве для разработки, по сравнению с производственной. Возможно ли, что в каждой строке вашего gridview что-то происходит, что происходит только 30 раз на вашем ящике, потому что в нем меньше данных, чем в производстве?

Систематическая отладка - уберите ее и добавляйте по очереди, пока не увидите изменения.

person n8wrl    schedule 01.06.2010
comment
К сожалению, это та же самая база данных. Я пробовал систематическую отладку до сих пор, но безрезультатно - изначально думал, что это мои панели обновления или модальный расширитель всплывающих окон ajax, но даже их удаление все еще медленное. - person Brandi; 01.06.2010

Брэнди,

Можете ли вы проверить журналы средства просмотра событий для веб-сервера? У вас что-то там не получается?

Вы запускаете приложение в VS2008 вне IIS или на сервере разработки?

person Flory    schedule 01.06.2010
comment
Я не вижу никаких сбоев ни в локальном, ни в производственном приложении. Я использую dev-сервер. - person Brandi; 02.06.2010
comment
Попробуйте переключить его на использование IIS из VS2008. Затем запустите его из dev и посмотрите, работает ли он по-другому. - person Flory; 02.06.2010
comment
Я пытался сделать это, но у меня возникла проблема: не могу прочитать файл конфигурации из-за недостаточных разрешений. Я не думаю, что могу предоставить кому-либо разрешения, но я действительно не понимаю, почему возникла эта проблема. - person Brandi; 03.06.2010

Каждый раз, когда я сталкивался со странными несоответствиями между, казалось бы, идентичным кодом разработчика и продукта, я научился быстро просматривать файл machine.config в процессе производства.

Если у вас есть доступ к нему, вы можете сравнить его со своей локальной копией и, в частности, просмотреть эти настройки (хотя связанное сообщение не относится к вашей конкретной проблеме как таковой).

person LesterDove    schedule 02.06.2010
comment
Я нашел свою локальную копию, я мог бы изменить ее, но у меня нет доступа к той, что находится на сервере. К тому же на этом сервере есть много других страниц, не только моя. Я думаю, может быть, я поставлю его на другой сервер и посмотрю, остались ли у него эти проблемы. - person Brandi; 03.06.2010

Я пришел к выводу, что это может быть проблема с процессором, основываясь на этом другом сообщении:

Низкая производительность веб-сайта ASP.NET на рабочем сервере

Спасибо всем, кто помог ответить.

person Brandi    schedule 29.06.2010