Очень странное поведение сайта IIS6 asp.net - PullRequest
2 голосов
/ 19 февраля 2010

У меня странная проблема с моим сайтом. Это веб-сайт asp.net (.net 3.5), размещенный на выделенном сервере IIS6.

Недавно я получил странное поведение, веб-сайт зависает и просто не отвечает, если я не захожу в iis и не перезагружаю пул приложений или весь IIS - НО что самое странное, что в случае, если я перехожу на удаленный рабочий стол сервер и попытаться получить к нему доступ локально, он работает просто отлично.

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

Если с кодом что-то не так - почему он все еще работает локально?

Если на стороне хостинга есть какие-то проблемы (например, проблемы с брандмауэром), то почему iisreset помогает?

Любые мысли приветствуются. Спасибо!

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Мы только что столкнулись с этой проблемой, и у нас есть решение. IIS имеет два пула потоков для обработки запросов. Один пул потоков используется для внешних запросов. Другой пул используется для локальных запросов. Наша проблема была вызвана тупиком в бэкэнд-коде. Как только возникла взаимоблокировка, все внешние запросы были поставлены в очередь, но не обслуживались, поскольку все обслуживающие потоки использовались. Открытие сайта с веб-сервера использует другой пул потоков, поэтому запросы обслуживаются. Мы были абсолютно уверены, что это была проблема с сетью, но WinDbg доказал обратное. Смотрите здесь для более подробной информации: MSDN запись в блоге об IIS и темах

minLocalRequestFreeThreads

(Кроме того, найдите minFreeThreads, чтобы увидеть нелокальные пулы потоков запросов.)

Удачи!

0 голосов
/ 19 февраля 2010

Хм недостаточно информации, чтобы действительно дать вам ответ, но я бы сначала посмотрел на ваш брандмауэр, если он отвечает локально с сервера. У вас есть другой сервер позади FW, как сервер SQL? Попробуйте просмотреть его, так как он покажет вам, в чем проблема.

Мой хотя бы плохо настроенный балансировщик нагрузки.

0 голосов
/ 19 февраля 2010

Вы уверены, что сайт зависает для всех внешних пользователей, так что это не просто один пользователь?

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

Вы можете проверить это, используя другой браузер или запустив новый экземпляр того же браузера (возможно с IE, а не с Firefox).

...