Разница между <system.web> и <system.webServer>?

197

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

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

И это:

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

В чем разница между этими двумя разделами?

Кроме того, если я не добавлю его в system.webраздел, мой отладчик Visual Studio 2008 также не будет работать правильно.

danmine
источник
2
Лучшая текущая ссылка на это: msdn.microsoft.com/en-us/library/46c5ddfy.aspx
Шеннон

Ответы:

157

Раздел 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 для получения дополнительной информации.

Крис
источник
4
А как насчет атрибутов типа <httpRuntime>, которые размещены в system.web, но все же имеют значение в интегрированном режиме IIS 7?
Sclarson
38
Раздел system.web не заменяется разделом system.webserver, он просто расширен.
Крис
В IIS 8.5 я обнаружил, что этот httpCookiesпараметр недоступен в system.webServer, но работает, если я создаю system.web и помещаю его туда.
Эборбоб
44

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

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

leppie
источник
Учитывая мой опыт, это лучший ответ по длине, ясности и реальности. В дополнение к классическому режиму на первом, добавьте IIS Express и другие серверы, которые не являются IIS 7.
Бен Грипка