Зависание IIS-сессии - PullRequest
       27

Зависание IIS-сессии

5 голосов
/ 11 февраля 2011

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

Две проблемы, которые вы должны преследовать: 1. Почему сайт пропускает ресурсы финализаторам. То есть плохой 2. Что ждет код Oracle - работайте с поддержкой Oracle на нем

Это проблема:

У меня периодически возникают проблемы с веб-сайт, размещенный на IIS6 (w2k3 sp2).

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

Я установил отладчик (IISState) на процесс w3wp со следующим выход. Записи с "Тема есть в ожидании освобождения замка. Ищу владельца замка. они могут быть причиной проблемы. Можно кто-нибудь скажет что такое блокировка процесса в ожидании?

Спасибо

http://www.eggheadcafe.com/software/aspnet/33799697/session-hangs.aspx

В моем случае мое приложение .Net C # MVC работает с базой данных MySQL для данных и базой данных MS SQL для членства .Net.

Я надеюсь, что кто-то с большим знанием IIS может помочь решить эту проблему.

Ответы [ 3 ]

1 голос
/ 11 февраля 2011

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

http://msdn.microsoft.com/en-us/library/ms178104.aspx

0 голосов
/ 20 февраля 2011

зависание IIS не является чем-то удивительным.IISState устарел, и вы можете использовать Debug Diag,

http://support.microsoft.com/kb/919791 (при высокой загрузке процессора) http://support.microsoft.com/kb/919792 (в противном случае)

Дампы зависаниядолжен сообщить вам, в чем причина.

Служба поддержки Microsoft может помочь проанализировать дампы, если вы не знакомы с приемами.http://support.microsoft.com

0 голосов
/ 11 февраля 2011

Я бы объяснил произошедшее зависание из-за сериализации сеанса. Не часть о сохранении / загрузке из какого-либо источника, а то, что ASP.NET не позволяет одному и тому же сеансу одновременно выполнять две параллельные страницы, если только они не выполняются с сеансом только для чтения. Последнее делается либо в директиве страницы, либо в файле web.config путем установки EnableSessionState = "ReadOnly".

Ваша проблема все еще существует, это не изменится, что первый поток зависает. Я хотел бы убедиться, что ваши подключения к базе данных расположены правильно. Однако вы никогда не упоминаете ни одной базы данных Oracle в своем вопросе (только Mysql и SQL Server). Почему вы вообще используете драйверы Oracle? (Это похоже на правильное место для начала отладки.)

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

...