Пулы приложений IIS 6 не отвечают на несколько запросов / не работают многопоточные - PullRequest
3 голосов
/ 19 апреля 2011

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

  • Приложение работает нормально для большинства людей, но когда кто-то в одном из пулов приложений получает доступ к долго выполняющемуся сценарию (обычно с большим доступом к БД), все остальные пользователи в пуле должны ждать этого Сценарий для завершения. После завершения сценария запускаются все остальные запросы. Это изначально заставило нас заподозрить строку подключения к БД или что-то в этом роде.

  • ДО ... мы также заметили, что загрузка больших файлов в нашу систему также приводит к тому, что пул приложений перестает отвечать на запросы. Что интересно в этом, так это то, что мы используем объект SAFileup COM + для наших загрузок, который отображается во всплывающем окне. Когда вы отправляете файл для загрузки, отображается индикатор выполнения, но затем он никогда не обновляется, чтобы показать процесс загрузки. Однако, если вы подождете, файл в итоге будет загружен, а остальные ожидающие запросы будут обрабатываться как обычно.

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

  • Мы пробовали различные строки подключения к БД, но ни одна из них не решила проблему (хотя я думаю, что это не строка подключения к БД). На всякий случай, если кто-то так считает, вот наша строка подключения: «Provider = SQLNCLI; Trusted_Connection = yes; Server = (local); Database = demo;». Это не может быть проще. Эта строка ранее не была проблемой.

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

  • Я использовал SQL Profiler и sp_who2, чтобы увидеть, есть ли во время длительных сценариев какие-либо тупики или блоки на SQL Server. Нет.

  • Проблемы изначально возникли после того, как мы установили некоторые исправления от Microsoft. Мы очистили машину и установили сервер Win2k3, затем SP2, и после этого больше не исправляли. Проблема осталась, поэтому, похоже, это не был патч.

Сейчас я в растерянности ... есть ли у кого-нибудь опыт с подобными проблемами? Если да, то как они были исправлены?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Убедитесь, что на сервере не включена отладка ASP.Это заставит механизм сценариев ASP работать в одном потоке.

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

Похоже на ограничение числа одновременных входящих запросов к IIS или Windows Server.

Проверьте http://blogs.msdn.com/b/david.wang/archive/2006/04/12/howto-maximize-the-number-of-concurrent-connections-to-iis6.aspx и http://forums.iis.net/p/1152112/1880908.aspx#1880908 о том, как настроить параметры.

...