Різниця між <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 також не працює належним чином.


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?
sclaron

38
Розділ system.web не замінюється розділом system.webserver, а просто розширений.
Кріс

На IIS 8.5 я виявив, що httpCookiesпараметр недоступний у system.webServer, але працює, якщо я створити system.web і помістити його туди.
Eborbob

44

Перший - для класичного режиму.

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


З огляду на мій досвід, чи це краща відповідь по довжині, ясності та реальності. Окрім класичного режиму на колишньому, додайте IIS express та інші сервери, які не є IIS 7.
Ben Gripka
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.