Первое - несколько разных вебсерверов в кластере, второе - просто одна машина с несколькими процессорами, обрабатывающими ASP.NET. Я тоже когда первый раз нашел - хихикал над этой тонкостью.
Кстати, по умолчанию, ASP.NET на мультипроцессорной машине исполняется только на одном процессоре.
Потому что ASP.NET процессы, исполняемые на разных процессорах, не могут иметь общей in-process сессии. То есть нужно настраивать либо отдельный сервер для хранения out-of-process сессии, либо SQL сервер. Чтобы упростить инсталляцию видимо сделали так. В этом несложно убедиться, если поглядеть на webGarden в machine.config.
чушь какая. процесс-то один. просто его треды могут исполняться на разных процессорах, как оно всегда и делается по умолчанию. так что сессия остаётся in-process.
> вы часом не путаете "один процессор" и "один процесс"?
А для ASP.NET это практически один хрен, по крайней мере, если речь идет о IIS5: он запускает отдельный рабочий процесс на каждом отдельном процессоре. Поэтому сессия у каждого своя. C IIS6 есть тонкости, но мне с ним еще работать не приходилось.
кроме того, неважно, на чём там запускается IIS, поскольку asp.net сессия хранится в пространстве процесса aspnet_wp.exe (на win2003 он по-другому называется), которому IIS просто передаёт реквест по ISAPI.
ну и наконец, даже если это правда, что aspnet_wp.exe использует только один процессор (в чём я сильно сомневаюсь), исходный вопрос так и остаётся неотвеченным: НАФИГА?
Cделали так, чтобы упростить инсталляцию, видимо. Потому что пришлось бы тогда у админа спрашивать где сервер для сессий находится и т.п. А так тихо встала на один процессор и улю.
> aspnet_wp.exe использует только один процессор (в чём я сильно сомневаюсь)
Нет, его можно сконфигурировать, чтобы он на всех процессорах ранался или только на некоторых. Делается в два пинка. Но при инсталляцию он встает только на один.
Потому что пришлось бы тогда у админа спрашивать где сервер для сессий находится и т.п.
я ужасно извиняюсь за занудство, но мне всё время кажется, что у нас есть непонимание из-за разницы в терминологии. я под процессором понимаю CPU, камень, который в слот вставляется. железо. кремний, то есть. какое он отношение имеет к "у админа спрашивать где сервер для сессий находится"? запускаем один aspnet_wp процесс, он работает на всех имеющихся процессорах, как это в виндах принято по умолчанию, он же хранит state. всё. зачем усложнять?
no subject
Кстати, по умолчанию, ASP.NET на мультипроцессорной машине исполняется только на одном процессоре.
no subject
нафига?
no subject
no subject
no subject
no subject
no subject
А для ASP.NET это практически один хрен, по крайней мере, если речь идет о IIS5: он запускает отдельный рабочий процесс на каждом отдельном процессоре. Поэтому сессия у каждого своя. C IIS6 есть тонкости, но мне с ним еще работать не приходилось.
no subject
кроме того, неважно, на чём там запускается IIS, поскольку asp.net сессия хранится в пространстве процесса aspnet_wp.exe (на win2003 он по-другому называется), которому IIS просто передаёт реквест по ISAPI.
ну и наконец, даже если это правда, что aspnet_wp.exe использует только один процессор (в чём я сильно сомневаюсь), исходный вопрос так и остаётся неотвеченным: НАФИГА?
no subject
> aspnet_wp.exe использует только один процессор (в чём я сильно сомневаюсь)
Нет, его можно сконфигурировать, чтобы он на всех процессорах ранался или только на некоторых. Делается в два пинка. Но при инсталляцию он встает только на один.
no subject
я ужасно извиняюсь за занудство, но мне всё время кажется, что у нас есть непонимание из-за разницы в терминологии. я под процессором понимаю CPU, камень, который в слот вставляется. железо. кремний, то есть. какое он отношение имеет к "у админа спрашивать где сервер для сессий находится"? запускаем один aspnet_wp процесс, он работает на всех имеющихся процессорах, как это в виндах принято по умолчанию, он же хранит state. всё. зачем усложнять?
no subject
Зачем она запускает раздельные рабочие процессы, на разный процессорах, я не знаю. Это просто такая реальность данная нам в ощущениях. ;)