Какая разница между <system.web> и <system.webServer>?

Каждый раз, когда я должен добавить обработчик или модуль для ASP.NET w/IIS7, инструкции всегда говорят мне, чтобы он помещал его в два места: system.web и system.webserver.

<system.web>
    <httpHandlers>
    </httpHandlers>
    <httpModules>
    </httpModules>
</system.web>

И это:

<system.webServer>
    <modules>
    </modules>
    <handlers>
    </handlers>
</system.webServer>

Какая разница между этими двумя? Добавлено: Если я не добавлю его в свой файл system.web, мой отладчик VS 2008 также работает неправильно.

Ответ 1

Раздел system.web предназначен для настройки IIS 6.0, а версия system.webserver используется для настройки IIS 7.0. IIS 7.0 включает новый конвейер ASP.NET и некоторые различия в конфигурации, поэтому дополнительные разделы конфигурации.

Однако...

Если вы используете только IIS 7.0 в интегрированном режиме, вам не нужно добавлять обработчики в оба раздела. Добавление его в system.web также является откатом для IIS 7.0, работающим в классическом режиме, если только я не ошибаюсь. Я не проводил обширных испытаний на этом.

Подробнее см. http://msdn.microsoft.com/en-us/library/bb763179.aspx.

Ответ 2

Первый для классического режима.

Последний относится к интегрированному режиму трубопровода (доступен в IIS7 +).