Differenza tra <system.web> e <system.webServer>?


197

Ogni volta che devo aggiungere un gestore o un modulo per ASP.NET con IIS7, le istruzioni mi dicono sempre di incorporarlo in due sezioni: system.webe system.webserver.

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

E questo:

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

Qual è la differenza tra queste due sezioni?

Inoltre, se non lo aggiungo alla system.websezione, anche il mio debugger di Visual Studio 2008 non funziona correttamente.


2
un riferimento attuale migliore per questo è: msdn.microsoft.com/en-us/library/46c5ddfy.aspx
Shannon

Risposte:


157

La sezione system.web è per la configurazione di IIS 6.0, mentre la versione system.webserver viene utilizzata per configurare IIS 7.0. IIS 7.0 include una nuova pipeline ASP.NET e alcune differenze di configurazione, quindi le sezioni di configurazione extra.

Però...

Se si esegue IIS 7.0 solo in modalità integrata, non è necessario aggiungere i gestori a entrambe le sezioni. Aggiungerlo anche a system.web è un fallback per IIS 7.0 che funziona in modalità classica, a meno che non mi sbagli. Non ho fatto test approfonditi su questo.

Vedere http://msdn.microsoft.com/en-us/library/bb763179.aspx per ulteriori informazioni.


4
Che dire di attributi come <httpRuntime> che vengono inseriti in system.web ma che fanno ancora la differenza nella modalità integrata IIS 7?
Sclarson,

38
La sezione system.web non è sostituita dalla sezione system.webserver, appena estesa.
Chris,

Su IIS 8.5 ho scoperto che l' httpCookiesimpostazione non è disponibile in system.webServer ma funziona se creo un system.web e lo inserisco.
Eborbob,

44

Il primo è per la modalità classica.

Quest'ultimo è per la modalità pipeline integrata (disponibile in IIS7 +).


Data la mia esperienza, è questa una risposta migliore in termini di lunghezza, chiarezza e realtà. Oltre alla modalità classica sulla prima, aggiungi IIS express e altri server che non sono IIS 7.
Ben Gripka,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.