Разница между <system.web> и <system.webServer>? - PullRequest
190 голосов
/ 10 декабря 2008

Каждый раз, когда мне нужно добавить обработчик или модуль для 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 также не будет работать правильно.

Ответы [ 2 ]

153 голосов
/ 10 декабря 2008

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

40 голосов
/ 10 декабря 2008

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

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

...