Конфигурирование и настройка Microsoft ASP.NET

Разрешение проблем с взаимными блокировками ASP.NET


Взаимные блокировки ASP.NET могут создать серьезную проблему. При возникновении взаимной блокировки приложение не отвечает в течение трех минут, затем процесс перезапускается, что занимает, по крайней мере, еще одну минуту. При перезапуске процесса в журнал событий сервера добавляется новая запись. Чтобы убедиться в отсутствии взаимных блокировок в вашем приложении, периодически проверяйте журнал событий. При обнаружении данного явления найдите приложение и код приложения, вызвавшие эту проблему. Частые взаимные блокировки возникают по ряду причин. Одной из причин является ситуация, когда приложение регулярно выполняет длительные, сильно нагружающие процессор операции. Если это так, то первым шагом будет увеличение параметра времени responseDeadlockInterval, что даст приложению больше времени на завершение данных операций, не вызывая при этом перезапуска. Если ваша проблема разрешится таким образом, то можно увеличить вычислительную мощность сервера, чтобы операции выполнялись быстрее. Если проблема не решена, то, скорее всего, имеется код, вызывающий блокировки или выполняющий операции, которые занимают слишком много времени даже на более быстром оборудовании. Наилучшим способом найти такой проблемный код является изоляция приложения, его ручное тестирование и поиск операции или страницы, которая является причиной проблемы.



Содержание раздела