IIS Express 7.5 не обрабатывает запросы одновременно - PullRequest
17 голосов
/ 12 марта 2012

Только что установил IIS Express 7.5 и пытаюсь отладить проблему параллелизма в приложении ASP.NET MVC 3. Однако я не могу заставить веб-сервер обрабатывать запросы одновременно, они просто выполняются один за другим.

Я использую Apache Bench для имитации одновременной загрузки, но он просто ставится в очередь.

У кого-нибудь есть идеи?

Спасибо.

Ответы [ 2 ]

25 голосов
/ 13 марта 2012

Если вы используете сеансы и повторно используете идентификатор сеанса для своих одновременных запросов, ASP.NET будет ставить запросы в очередь, потому что для каждого запроса требуется эксклюзивная блокировка сеанса.

Взято из http://msdn.microsoft.com/en-us/library/ms178581.aspx

Параллельные запросы и состояние сеанса

Доступ к состоянию сеанса ASP.NET является исключительным для сеанса, что означает, что если два разных пользователя делают параллельные запросы, доступ ккаждый отдельный сеанс предоставляется одновременно.Однако, если два одновременных запроса сделаны для одного и того же сеанса (с использованием одного и того же значения SessionID), первый запрос получает эксклюзивный доступ к информации сеанса.Второй запрос выполняется только после того, как первый запрос завершен. (Второй сеанс также может получить доступ, если исключительная блокировка информации освобождается, поскольку первый запрос превышает время ожидания блокировки.) Если значение EnableSessionState вДиректива @ Page имеет значение ReadOnly, запрос информации о сеансе только для чтения не приводит к исключительной блокировке данных сеанса.Однако запросы только для чтения данных сеанса, возможно, все еще должны ожидать блокировки, установленной запросом чтения-записи, для очистки данных сеанса.

0 голосов
/ 12 марта 2012

У вас нет ничего странного в вашем web.config для приложения, например, настройки maxConcurrentRequestsPerCPU, maxConcurrentThreadsPerCPU?

http://msdn.microsoft.com/en-us/library/dd560842.aspx

...