2013-11-26 7 views
0

У меня есть веб-сайт, который я разработал с помощью C# и Visual Studio.IIS, обслуживающий запросы синхронно?

Я заметил, что в режиме отладки в визуальной студии (но без точек останова), когда я нахожусь на странице и нажимаю много раз F5 для обновления страницы, для обслуживания всех запросов требуется много времени, пока я не получу последний ответ на браузер. Между тем, при попытке получить доступ к сайту из другого сеанса браузера, я жду ответа с сервера, который занят и не отвечает.

Не работает ли IIS асинхронно при обслуживании запросов клиентам?

+0

Вы можете найти обходное решение в http://stackoverflow.com/questions/8183604/how-to-debug-only-one-thread-in-visual-studio –

+1

@EdChapel - похоже, что это не связано с отладчиком , –

ответ

1

Когда вы отлаживаете и остановлены в точке останова, все потоки заморожены. Таким образом, остальные запросы находятся в очереди и ждут обработки.

+1

Следует отметить, что это в основном относится к *, когда в точке останова/паузе * - не просто работает внутри отладчика. –

+0

@MarcGravell, что я имею в виду, работает в режиме отладки в визуальной студии (но без точек останова) – Gidi

2

IIS и ASP.NET сильно параллельны. Независимо от того, выполняются ли запросы от одного клиента одновременно до IIS и т. Д. Однако не всегда можно обнаружить отключение - поэтому, если каждый запрос забивает сервер, для завершения может потребоваться некоторое время. Наконечник: не записывайте медленные страницы. Установите целевое время, в течение которого вы хотите ответить, и используйте инструмент, такой как мини-профилировщик, чтобы проверить, как вы поживаете, и что занимает время. Наша цель внутренне составляет около 30 мс, но большинство людей, вероятно, захотят нацелиться на 1 изначально, затем 0,5 с и т. Д.

4

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

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

+0

ooh, good spot; Обычно я отключу состояние сеанса, поэтому я забыл некоторые нюансы, которые он создает –

+0

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

+0

Вот почему моя точка зрения на отладчик была неопределенной ... :-) –

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