2016-03-15 8 views
2

IIS 7.5, .Net 4.6Почему мои одновременные запросы asp.net от одного и того же клиента выполняются одновременно?

На вкладке «Диагностика сети браузера» видно, что запросы стекируются, а не выполняются одновременно. Это можно увидеть с помощью статических запросов контента (например, таблиц стилей, изображений, javascript), которые ждут завершения динамического запроса до их завершения. Я также разработал тест, в котором таймер javascript используется для запросов на статический контент на регулярном интервале. (Назовем это «http-ping» .Если у меня длинный основной запрос, эти запросы на http-ping возвращаются.

С помощью perfmon я определил следующие приращения счетчиков, когда мои запросы на http-ping складываются: просит тока; сосчитать экземпляр трубопровода;

в то время как эти счетчики остаются на нуле: запросов в родную очереди; запросов в очередь; запросов в очереди приложения;

Я также проверил состояние приложения с отладкой. Только один поток, соответствующий основному запросу, активен в применении код. Другие потоки показывают местоположение стека как «».

+0

Сессии могут привести к этому. Удалите cookie из Fiddler и выполните запросы, чтобы проверить это. – usr

+0

Если я удалю cookie сеанса, мой основной запрос не удастся. Для этого требуется сеанс. –

+0

Затем проверьте ресурс. Вы сказали, что также затронуты ресурсы. – usr

ответ

0

Как было предложено @usr, проблема связана с сеансом. Действительно, использование состояния сеанса запрещает одновременные действия на одном сеансе, за this msdn article. В моем случае я мог бы использовать

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)] 

, чтобы устранить проблему.

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