2008-12-10 15 views
178

Cada vez que tengo que agregar un controlador o módulo para ASP.NET w/IIS7, las instrucciones siempre me dicen que lo coloque en dos lugares, el system.web y system.webserver.¿Cuál es la diferencia entre <system.web> y <system.webServer>?

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

Y esto:

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

Cuál es la diferencia entre los dos?
Agregado: Si no lo agrego a mi system.web, mi depurador VS 2008 tampoco funciona correctamente.

+2

una mejor referencia actual para esto es: http://msdn.microsoft.com/en-us/library/46c5ddfy.aspx – Shannon

Respuesta

145

La sección system.web es para configurar IIS 6.0, mientras que la versión de system.webserver se usa para configurar IIS 7.0. IIS 7.0 incluye una nueva canalización de ASP.NET y algunas diferencias de configuración, de ahí las secciones de configuración adicionales.

Sin embargo ...

Si está ejecutando IIS 7.0 en modo integrado solo, que no es necesario añadir los manejadores de ambas secciones. Agregarlo a system.web también es una alternativa para IIS 7.0 que funciona en modo clásico, a menos que esté equivocado. No he hecho pruebas exhaustivas sobre esto.

Consulte http://msdn.microsoft.com/en-us/library/bb763179.aspx para obtener más información.

+3

¿Qué hay de attributs como que se colocan en system.web pero aún hacen la diferencia en ¿Modo integrado de IIS 7? – sclarson

+35

La sección system.web no es reemplazada por la sección system.webserver, recién extendida. – Chris

+0

En IIS 8.5 he encontrado que la configuración 'httpCookies' no está disponible en system.webServer pero funciona si creo un system.web y lo coloco allí. – Eborbob

35

El primero es para el modo clásico.

Este último es para el modo de canalización integrada (disponible en IIS7 +).

+0

Dada mi experiencia, esta es una mejor respuesta en longitud, claridad y realidad. Además del modo clásico en el primero, agregue IIS express y otros servidores que no sean IIS 7. –

Cuestiones relacionadas