Różnica między <system.web> a <system.webServer>?

197

Za każdym razem, gdy muszę dodać moduł obsługi lub moduł dla ASP.NET z IIS7, instrukcje zawsze mówią mi, aby zawrzeć go w dwóch sekcjach: system.webi system.webserver.

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

I to:

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

Jaka jest różnica między tymi dwiema sekcjami?

Ponadto, jeśli nie dodam go do system.websekcji, mój debuger programu Visual Studio 2008 również nie działa poprawnie.

Danmine
źródło
2
lepszym aktualnym odniesieniem do tego jest: msdn.microsoft.com/en-us/library/46c5ddfy.aspx
Shannon

Odpowiedzi:

157

Sekcja system.web służy do konfigurowania usług IIS 6.0, natomiast wersja system.webserver służy do konfigurowania usług IIS 7.0. IIS 7.0 zawiera nowy potok ASP.NET i pewne różnice w konfiguracji, stąd dodatkowe sekcje konfiguracji.

Jednak...

Jeśli używasz IIS 7.0 tylko w trybie zintegrowanym, nie musisz dodawać programów obsługi do obu sekcji. Dodanie go również do system.web jest rezerwą dla IIS 7.0 działających w trybie klasycznym, chyba że się mylę. Nie przeprowadziłem obszernych testów w tym zakresie.

Więcej informacji można znaleźć na stronie http://msdn.microsoft.com/en-us/library/bb763179.aspx .

Chris
źródło
4
Co z atrybutami takimi jak <httpRuntime>, które są umieszczane w system.web, ale nadal mają znaczenie w trybie zintegrowanym IIS 7?
sclarson
38
Sekcja system.web nie jest zastępowana przez sekcję system.webserver, tylko rozszerzoną.
Chris
W IIS 8.5 odkryłem, że httpCookiesustawienie nie jest dostępne w system.webServer, ale działa, jeśli utworzę system.web i tam go wstawię.
Eborbob,
44

Pierwszy dotyczy trybu klasycznego.

Ten ostatni dotyczy trybu zintegrowanego rurociągu (dostępny w IIS7 +).

leppie
źródło
Biorąc pod uwagę moje doświadczenie, jest to lepsza odpowiedź pod względem długości, jasności i rzeczywistości. Oprócz trybu klasycznego na tym pierwszym, dodaj IIS express i inne serwery, które nie są IIS 7.
Ben Gripka