Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / асинхронные запросы (одновременное выполнение) / 13 сообщений из 13, страница 1 из 1
21.02.2007, 12:36
    #34346599
metalex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Специфика моего веб-сервера на ASP.NET 1.1 (IIS 6) состоит в том, что сервер отправляет пользователю простенькую страницу на html и javascript. И уже на стороне клиента начинается богатая жизнь. Пользователь сам выбирает что ему нужно загружать и как работать.
Классический AJAX.
Проблема в том, что есть запросы простенькие, 2 мс и готово, а есть огромные (например export в Excel, PowerPoint, ...), которые могут идти до минуты. Так вот, во время работы этих монстров, мои маленькие не могут протиснуться - они ожидают пока закончится выполнение прошлого запроса этого пользователя.
Хотя данные, с которыми работают эти потоки не пересекаются! И они не могут повлиять на работу друг друга.

Вопрос, в том, как реализовать возможность обработки нескольких асинхронных запросов от ОДНОГО пользователя одновременно?

И сопуствующий вопрос, как убить уже ненужный запрос, чтобы не жрал проц и память?
Такой код:
var xmlRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
...
xmlRequest.abort();

крайне плохо работает. Он вроде и убивает поток на веб-сервере, но как-то не сразу, приходится порой долго ждать.
...
Рейтинг: 0 / 0
21.02.2007, 13:02
    #34346724
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Специфика моего веб-сервера на ASP.NET 1.1 (IIS 6) состоит в том, что сервер отправляет пользователю простенькую страницу на html и javascript. И уже на стороне клиента начинается богатая жизнь. Пользователь сам выбирает что ему нужно загружать и как работать.
Классический AJAX.
Проблема в том, что есть запросы простенькие, 2 мс и готово, а есть огромные (например export в Excel, PowerPoint, ...), которые могут идти до минуты. Так вот, во время работы этих монстров, мои маленькие не могут протиснуться - они ожидают пока закончится выполнение прошлого запроса этого пользователя.
Хотя данные, с которыми работают эти потоки не пересекаются! И они не могут повлиять на работу друг друга.

Вопрос, в том, как реализовать возможность обработки нескольких асинхронных запросов от ОДНОГО пользователя одновременно?

И сопуствующий вопрос, как убить уже ненужный запрос, чтобы не жрал проц и память?
Такой код:
var xmlRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
...
xmlRequest.abort();

крайне плохо работает. Он вроде и убивает поток на веб-сервере, но как-то не сразу, приходится порой долго ждать.
Так ведь делай асинхронную обработку внутри aspx. Да и аджакс можно сделать асинхронным если сделать ставну на специальный "фреймовый" аджакс. Что касается отмены запроса, то это кнопка "прервать загрузку страницы". А сервер сам умеет распознавать оживает ли клиент загрузку или нет.
Есть многое на свете, друг Гораций, что непонятно нашим мудрецам.
...
Рейтинг: 0 / 0
22.02.2007, 14:31
    #34350357
metalex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Для асинхронных запросов я использую свой handler webcall.ashx.

Так вот проблема в том, когда пришёл первый запрос и он не выполнится, второй даже не начинает выполнение.
IHttpHandler.ProcessRequest выполняет для одного юзера всегда последовательно.

Я пробывал использовать IHttpAsyncHandler, но результат тот же
BeginProcessRequest.ProcessRequest никогда вызовется пока не закончит работу предыдущий запрос для этого юзера.

Но! В Global.asax Application_BeginRequest вызывается как положено, т.е. по поступлению запроса тут же начинает его обработка.
Отсюда вывод что код локирования спрятан где-то в глубинах asp.net.
Думаю это близко к System.Web.HttpApplication.CallHandlerExecutionStep и метода ResumeSteps, но самой блокировки я не нашёл.

Возможно есть какой-нибудь флажок, который снимет это ограничение.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.01.2016, 13:12
    #39146357
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Может кто нить подскажет как с этим бороться?

авторЯ пробывал использовать IHttpAsyncHandler, но результат тот же
BeginProcessRequest.ProcessRequest никогда вызовется пока не закончит работу предыдущий запрос для этого юзера.
...
Рейтинг: 0 / 0
13.01.2016, 17:43
    #39146686
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
vdp,
IsReusable?
...
Рейтинг: 0 / 0
13.01.2016, 23:36
    #39146856
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
ЕвгенийВvdp,
IsReusable?
Что true что false - одно и тоже. Куда еще смотреть?
...
Рейтинг: 0 / 0
13.01.2016, 23:39
    #39146860
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Когда запросы приходят с разных машин - то одновременно выполняются. Проблема только когда с одной и той же несколько.
...
Рейтинг: 0 / 0
13.01.2016, 23:47
    #39146866
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Боюсь что про разные машини я поспешил - тоже самое.
...
Рейтинг: 0 / 0
14.01.2016, 11:54
    #39147132
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Поставил виртуальную машину с Win2008 R2 server - и там все ок
А у меня Windows 10 home z IIS (встроеный) и тут только 3 запроса на раз. Может это какое то ограничение или в реестре что нить?
...
Рейтинг: 0 / 0
14.01.2016, 12:03
    #39147141
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
vdp,
Это ограничение версии windows.
...
Рейтинг: 0 / 0
14.01.2016, 12:05
    #39147145
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
ЕвгенийВvdp,
Это ограничение версии windows.
Ясно :(
А не подскажите может где об этом почитать можно?
...
Рейтинг: 0 / 0
14.01.2016, 12:11
    #39147152
vdp
vdp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
Уже нашел. Спасибо!
...
Рейтинг: 0 / 0
14.01.2016, 12:19
    #39147169
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронные запросы (одновременное выполнение)
vdpЯсно :(
А не подскажите может где об этом почитать можно?
В документации виндовс. Мс делает для стимулирования покупки более дорогих серверных операционок.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / асинхронные запросы (одновременное выполнение) / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]