2008-12-10 14 views
178

Jedes Mal, wenn ich einen Handler oder ein Modul für ASP.NET mit IIS7 hinzufügen muss, sagen die Anweisungen immer, dass ich es an zwei Stellen platzieren soll, system.web und system.webserver.Was ist der Unterschied zwischen <system.web> und <system.webServer>?

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

Und:

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

Was ist der Unterschied zwischen den beiden?
Hinzugefügt: Wenn ich es nicht zu meinem system.web hinzufüge, funktioniert mein VS 2008 Debugger auch nicht richtig.

+2

eine bessere Stromreferenz hierfür ist: http://msdn.microsoft.com/en-us/library/46c5ddfy.aspx – Shannon

Antwort

145

Der Abschnitt system.web dient zum Konfigurieren von IIS 6.0, während die Version system.webserver zum Konfigurieren von IIS 7.0 verwendet wird. IIS 7.0 enthält eine neue ASP.NET-Pipeline und einige Konfigurationsunterschiede, daher die zusätzlichen Konfigurationsabschnitte.

jedoch ...

Wenn Sie nur IIS 7.0 im integrierten Modus ausgeführt wird, sollten Sie nicht die Handler für beide Abschnitte hinzufügen müssen. Das Hinzufügen zu system.web ist auch ein Fallback für IIS 7.0, das im klassischen Modus ausgeführt wird, sofern ich mich nicht irre. Ich habe das nicht ausführlich getestet.

Weitere Informationen finden Sie unter http://msdn.microsoft.com/en-us/library/bb763179.aspx.

+3

Was attributs wie , die in system.web platziert sind, aber immer noch einen Unterschied machen auf IIS 7 Integrierter Modus? – sclarson

+35

Der Abschnitt system.web wird nicht durch den Abschnitt system.webserver ersetzt, sondern nur erweitert. – Chris

+0

In IIS 8.5 habe ich festgestellt, dass die Einstellung "httpCookies" in system.webServer nicht verfügbar ist, aber funktioniert, wenn ich eine system.web erstelle und dort einfüge. – Eborbob

35

Die erste ist für den klassischen Modus.

Letzteres ist für den integrierten Pipeline-Modus (verfügbar in IIS7 +).

+0

Nach meiner Erfahrung ist dies eine bessere Antwort in Länge, Klarheit und Realität. Fügen Sie IIS Express und andere Server, die nicht IIS 7 sind, zusätzlich zum klassischen Modus hinzu. –

Verwandte Themen