2008-12-10 6 views
178

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

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

И это:

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

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

+2

лучший опорный ток для этого: http://msdn.microsoft.com/en-us/library/46c5ddfy.aspx – Shannon 2010-06-06 17:53:25

ответ

145

Раздел 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.

+3

насчет attributs как , которые размещены в system.web, но до сих пор делают разницу в Интегрированный режим IIS 7? – sclarson 2011-07-08 15:00:18

+35

Раздел system.web не заменяется секцией system.webserver, просто расширенной. – Chris 2011-07-08 16:17:39

35

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

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