2011-08-17 8 views
9

¿Cuál es el punto de tener dos secciones separadas para definir documentos de error en web.config?Secciones System.webServer y System.web de web.config

<system.webServer> 
... 
    <httpErrors errorMode="Custom"> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/ErrorPage_404.aspx" responseMode="ExecuteURL" /> 
    </httpErrors> 
... 
</system.webServer> 

y

<system.web> 
... 
    <customErrors defaultRedirect="/Forms/Errors/Error.aspx" mode="On"> 
     <error statusCode="404" redirect="/ErrorPage_404.aspx" /> 
    </customErrors> 
... 
</system.web> 

Si quito primera sección, IIS7 no mostrará las páginas de error. Si elimino el segundo, mi depurador VS no mostrará las páginas de error.

+0

¿Migró su aplicación a .Net Framework 4.0 o a IIS 7.5 y se había ejecutado int después de IIS 6 anteriormente? – citronas

Respuesta

7

Siempre pensé que system.web se aplicaba a IIS6 y abajo, mientras que system.webServer se aplicaba a IIS7 +, pero en realidad parece que la respuesta real es ese system.web es para páginas .aspx/.asp a través de su asignación de controlador y todo lo demás pasa por system.webServer.

Have a look at this webpage for a pretty clear explanation.

Cuestiones relacionadas