2012-01-27 4 views
6

Я пытаюсь выяснить, почему ASP.NET Development Server не обрабатывает запросы одновременно.Параллельная обработка ASP.NET Development Server не работает

Таким образом, я создал простую страницу ASPX с помощью следующего кода:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

System.Threading.Thread.Sleep(10000) 

End Sub 

Если я открыть страницу в два раза, то ответ занимает 20 секунд. Это означает, что сервер выполняет запросы один за другим (а не одновременно).

Следуя рекомендациям, приведенным в this topic, я добавил EnableSessionState="false" на странице, но это, похоже, не помогает.

Любые идеи о том, как обрабатывать запросы одновременно?

ответ

7

Сервер asp.net dev (cassini) не может обрабатывать несколько потоков. Таким образом, он эффективно обрабатывает запросы по одному. Поворот сеанса действительно не повлияет на это.

Это действительно просто ограниченное однопользовательское тестирование веб-приложения.

Я бы рекомендовал вам сбросить cassini и установить IIS Express или просто перейти к полной реализации IIS.

Немного чтения: ASP.NET Dev Server (Cassini), IIS Express and multiple threads

0

IIS на XP не позволяет, что много одновременных соединений (я думаю, что это 10). Если вы работаете в этой среде, возможно, поэтому вы это испытываете (помимо этих двух запросов у вас есть запросы на файлы с ссылками, плюс вы можете получать больше запросов, чем вы думаете, что находитесь на этой конкретной странице) ,

Я не уверен, что VS-встроенный сервер имеет аналогичные ограничения.

+0

Я не понимаю, почему этот ответ был просмотрен так не по теме, чтобы кто-то downvote его. Я думаю, что это было актуально, и хотя на самом деле он не отвечает на вопрос (нечеткий, как есть), он не должен наказываться. Во всяком случае, я должен получить «спасибо, в любом случае». Ну, спасибо, во всяком случае, тому, кто это сделал. –

+0

Я согласен ... против;) – NotMe

+0

да, вы предложили хороший угол зрения, который не должен быть наказан, но быть вознагражденным ... –

0

Если вы используете ASP.NET MVC, не отключая SessionState (который по умолчанию был бы), ваши запросы будут автоматически сериализованы - так что если вы проверяете условия гонки со случайным значением Thread.Sleep(), тогда запрос B никогда не будет завершение перед запросом A, даже если время спать меньше.

ASP.NET MVC and Ajax, concurrent requests?