Время ожидания операции истекло

  • Автор темы Generik73
  • Обновлено
  • 18, May 2024
  • #1
Наш веб-сайт работал без проблем (около года), а затем внезапно мы начали получать ошибку тайм-аута.

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

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

Это заставило меня поверить, что это проблема с тайм-аутом соединения, поэтому я увеличил время (в файле web.config) с 15 до 30, а затем до 120, но безуспешно.

Я постараюсь предоставить как можно больше информации, но, пожалуйста, знайте, что я не создавал сайт, а просто беру на себя работу по его обслуживанию.

Заранее благодарю за любую помощь Ошибка стека (принтскрин) прилагается Вот что я знаю: Он размещен на AWS и написан на ASP.NET 4.0. Использует ASP.NET Ajax. Веб-сервер библиотеки: Microsoft-IIS 8.5. На странице ошибки имеется следующее сообщение:
Время ожидания операции истекло Описание.

Во время выполнения текущего веб-запроса произошло необработанное исключение.

Просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и ее источнике в коде. Сведения об исключении: System.Component Model.Win32Exception: истекло время ожидания операции ожидания.
Ошибка источника: Во время выполнения текущего веб-запроса было создано необработанное исключение. Информацию о происхождении и местоположении исключения можно определить с помощью трассировки стека исключений ниже. [Win32Exception (0x80004005): время ожидания операции истекло]

Generik73


Рег
07 May, 2012

Тем
65

Постов
199

Баллов
544
  • 02, Jun 2024
  • #2
Возможно, у вас есть файл журнала, который заполняется или, что еще хуже, файл журнала, записанный в dB? Это верный путь к катастрофе, если все сделано неправильно.

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

Олег5


Рег
22 May, 2013

Тем
77

Постов
222

Баллов
677
  • 03, Jun 2024
  • #3
Дебби, Ваш ежедневный опыт подсказывает еще один момент, на который стоит обратить внимание; активность в зависимости от времени суток. Это может сказать вам что-нибудь, а может и не сказать, но это еще одно данное, и знание того, что происходит, ведет к пониманию того, почему. Гэри
 

Badfon


Рег
09 Feb, 2015

Тем
61

Постов
206

Баллов
531
  • 08, Jun 2024
  • #4
@sarahk и @kk5st Большое спасибо, что нашли время ответить на мой вопрос.

У меня (плохое) предчувствие, что вы правы в своем анализе.

Я надеялся, что будет что-то попроще! Забавно то, что сегодня я проверил это и могу войти как со своей (пустой), так и с другой учетной записью, в которой есть данные.

Утром зашёл без проблем, но сегодня днём снова тайм-аут.

Может ли быть что-то, работающее в фоновом режиме в системе, что вызывает задержку?

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

Perim


Рег
13 May, 2013

Тем
71

Постов
189

Баллов
574
  • 10, Jun 2024
  • #5
Я не специалист по ASP, поэтому не буду пытаться прочитать ошибку, но буду смотреть на выполняемые запросы. Однако...
Анекдот

У меня есть система cakephp, которая делает много интересных вещей при выполнении запросов.

Однако

Он также делает некоторые довольно глупые вещи, когда вы выполняете запросы.

Какое-то время все было хорошо, никаких негативных последствий от глупостей не было, и мне нужно было жарить рыбу покрупнее.

Мои пользователи с трудом добавляли в базу данных тонны записей.

Пока внезапно у некоторых пользователей сайт не остановился, не истекло время ожидания и не возникли проблемы с памятью.

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

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

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

Вам необходимо определить запрос, вызывающий тайм-аут, и посмотреть, что он пытается сделать.

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

MaxButler


Рег
03 Mar, 2016

Тем
56

Постов
184

Баллов
504
  • 10, Jun 2024
  • #6
@sarahk, вероятно, попал в самую точку.

Структура базы данных и запросы — работа специалиста.

Даже небольшая неэффективность в любом из них может привести к полной остановке, когда масштабы поднимают голову.

Обратите внимание, что sqlclient является основным источником ошибок.

(Пожалуйста, скажите мне, что вы используете настоящую СУБД, а не Access.) Я бы посоветовал вам нанять специалиста по базам данных, чтобы он рассмотрел и предложил улучшения структуры базы данных и используемых вами запросов.

Мой собственный анекдот: у меня была база данных, которая работала медленно (частично из-за рекурсивного манипулирования данными на логическом уровне). Поскольку мой зять был директором по информационным технологиям крупной страховой компании, я попросил у него совета.

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

Лесу (кстати, так его зовут) потребовалось около 10 минут, чтобы переформулировать мои запросы.

Это было похоже на чудо; все прошло как надо. Безвозмездный совет: Если вы еще этого не сделали, настройте API «черного ящика» между логическим уровнем и СУБД.

Это вопрос безопасности, и он позволяет изменять запросы и системы баз данных (например, переход между MySQL, Oracle, PostgreSQL) или логику программирования, не влияя друг на друга.

Тестируете ваши запросы, кто-нибудь? Кроме того, позволяет администраторам БД и программистам работать более или менее независимо. Используйте API «черного ящика» между логическим уровнем и структурой внешнего интерфейса.

IOW, используйте механизм шаблонов по тем же причинам, что и при использовании API базы данных; пусть одно из них будет изменено, не затрагивая другое.

(Никогда не встраивайте программный код и HTML.) Как и выше, специалисты по интерфейсу и программисты могут работать независимо. Даже если каждую должность занимает один человек, все равно лучше разделить базу данных, логику и структуру. ваше здоровье, Гэри
 

Matrosov


Рег
18 Aug, 2011

Тем
70

Постов
216

Баллов
586
Тем
403,760
Комментарии
400,028
Опыт
2,418,908