web-dev-qa-db-fra.com

Différence entre <system.web> et <system.webServer>?

Chaque fois que je dois ajouter un gestionnaire ou un module pour ASP.NET avec IIS7, les instructions me disent toujours de l'incorporer dans deux sections: system.web et system.webserver.

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

Et ça:

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

Quelle est la différence entre ces deux sections?

De plus, si je ne l'ajoute pas à la system.web _, mon débogueur Visual Studio 2008 ne fonctionne pas non plus correctement.

194
danmine

La section system.web permet de configurer IIS 6.0, tandis que la version de system.webserver est utilisée pour configurer IIS 7.0. IIS 7.0 inclut un nouveau pipeline ASP.NET et certaines différences de configuration, d'où les sections de configuration supplémentaires.

Toutefois...

Si vous utilisez IIS 7.0 en mode intégré uniquement, vous ne devriez pas avoir besoin d'ajouter les gestionnaires aux deux sections. L'ajouter à system.web constitue également une solution de secours pour IIS 7.0 fonctionnant en mode classique, sauf erreur de ma part. Je n'ai pas fait de tests approfondis à ce sujet.

Voir http://msdn.Microsoft.com/en-us/library/bb763179.aspx pour plus d'informations.

156
Chris

Le premier est pour le mode classique.

Ce dernier est pour le mode Pipeline intégré (disponible dans IIS7 +).

41
leppie