2013-08-23 3 views
3

У меня есть страница aspx, которая загружает 10 диаграмм асинхронно через запросы Jquery Ajax. Запросы производятся для общих обработчиков, которые реализуют IReadOnlySessionState, поскольку требуется доступ к переменной сеанса, но она является прочитанной, и таким образом меня не затрагивает блокировка чтения чтения, которую реализует asp.net.Ограничение по теме за сеанс?

Через отладчик я могу видеть, что вызовы происходят асинхронно, но кажется, что существует предел, так как некоторые вызовы вводят код только после того, как первые несколько завершатся. Я не уверен, что это по дизайну IIS или свойства внутри web.config.

Существует ли ограничение потоков, которое может иметь один пользователь/сеанс за один раз?

+0

Где ограничения вы говорите на AJAX или на сервере. На сервере, поскольку создание нового потока дорого, потоки берутся из пула потоков, который, как я полагаю, имеет ограничение по 25 потокам. Если вы говорите о браузере (запрос AJAX), то это должно зависеть от реализации какого-либо perticular браузера. – Anand

+0

Существует свойство, называемое ThreadPool.SetMaxThreads, которое вы можете изучить. – Anand

+2

Как я понимаю, браузеры имеют ограничение на одновременный запрос, отправленный на сервер , Я не могу найти ссылку, опубликую ее, как только я ее захвачу. – Nilesh

ответ

0

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

См: http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

Если приложение ASP.NET использует веб-службы (WFC или ASMX) или system.net общаться с бэкэндом через HTTP, может потребоваться увеличение connectionManagement/maxconnection. Для приложений ASP.NET это ограничение ограничено 12 * #CPU функцией autoConfig.

Кроме того, из той же статьи: http://support.microsoft.com/kb/821268

Если вы уже давно работает HTTP запросы от AJAX ваш лучший выбор, чтобы сделать асинхронные обработчики запросов HTTP. Затем запросы могут ожидаться в потоке ввода-вывода, поскольку asp.net имеет намного больше потоков ввода-вывода, чем workthreads.

См: http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45

+0

. Путь потоков пула не создает проблем с созданием более двух потоков ... – Servy

+0

Я не думаю, что это связано, также я использую .net 3.5 извините забыл упомянуть об этом. Спасибо хоть! – AntSpiteri

+0

Какая версия IIS используется? –

Смежные вопросы