Мне интересно, как работает параллелизм в веб-приложении. Я прочитал несколько статей, и, насколько мне известно, несколько экземпляров HttpApplication будут работать одновременно. Теперь, я создал простой веб-приложение, чтобы проверить параллельность и поставить следующее global.asax:IIS, конвейер Asp.NET и параллелизм
protected void Application_BeginRequest(object sender, EventArgs e)
{
Response.Write("Request started: " + DateTime.Now);
System.Threading.Thread.Sleep(10000);
Response.Write("<br />");
Response.Write("Request ended: " + DateTime.Now);
Response.End();
}
Я ожидал, что, если я просматриваю к корню веб-приложения в нескольких вкладок браузера в почти то же самое время, они будет начинаться и останавливаться одновременно. Однако, похоже, они этого не делают. Время начала второй вкладки совпадает с первым временем окончания. Затем я тестировал этот же код в httpmodule или default.aspx page_load и получил тот же результат.
Что здесь происходит? Почему параллельные запросы не выполняются?
Edit: Я положил мое понимание в основном на две статьи: «Если несколько запросов, направленных на то же самое приложение приходят одновременно, будет использоваться несколько объектов HttpApplication»
http://msdn.microsoft.com/en-us/magazine/cc188942.aspx говорит
и http://www.code-magazine.com/article.aspx?quickid=0511061&page=5 имеет пример для страницы aspx, в основном, что я тестировал, с комментарием «Имитировать медленный запрос, чтобы мы могли видеть несколько запросов рядом». рядом с Thread.Sleep call
Возможно, что я совершенно не понимаю что-то ... но что?
http://www.code-magazine.com/article.aspx?quickid=0511061&page=5
Спасибо Кев, см. мой ответ тоже ... Я думал, что что-то странное происходит! – mmiika 2008-11-21 06:35:38