Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Многопоточность в ASP (IIS 7.5)


Автор: DrBoom 21.3.2011, 20:56
И так. Суть проблемы следующая. Имеется некий COM-компонент, который запускается из ASP.
И он запускается и работает как надо. Почти. Код ASP-страницы предельно простой:
Код

<% @ Language="VBScript" %>
<%
    Call CreateObject("Some.Control").SomeProc(Server, Session, Request, Response)
%>

Т.е. весь HTML-код формируется компонентом. Однако, если компонент начинает "долгую" процедуру внутри себя (чтение и выгрузка больших бинарных данных -- downloading файлов), то при попытке второго параллельного запроса, тот почему-то ждёт когда первый завершится. В IIS более ранних версий такой проблемы не было.

Искал в дебрях интернета решение. Был совет включение в настройках ASP "Выполнять в MTA". Не помогает.
Так же предлагалось отключение отладки (так на стороне сервера, так и клиента) -- якобы она работает в однопоточном режиме.
Отключил. Результат ноль. Переключение с true на false и обратно параметра "Учитывать потоковую модель... " Тоже не венчается успехом.

Что может быть и что может помочь запускать компонент в параллельном потоке?
Исключить "долгую" процедуру не является возможным.

Автор: DrBoom 23.3.2011, 22:33
После долгих мучений настроек IIS был найден в дополнительных настройках пула такой параметр, как "максимальное число рабочих процессов", значение по умолчанию которого является один. Вот такая вот хитрая штука "безопасность" (или с какой ещё целью такое ограничение? smile ). Но что больше поражает, среди многих других параметров и ограничений, у этого нельзя указать ноль (чтобы его вообще снять). Ещё одни грабли в колёса. Ну да ладно. Вопрос исчерпан.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)