2009-12-11 9 views
10

tenemos la situación en el web.config:httpError no mostrará las páginas de error personalizados

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/Error/NotFound.aspx" responseMode="Redirect" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/Error/ServerError.aspx" responseMode="Redirect" /> 
</httpErrors> 

Pero IIS todavía muestra el construido en la página de error.

¿Alguna idea?

Respuesta

5

Así es como lo estoy usando y funciona para mí, se ve bastante similares, excepto por las directivas subStatusCode y la ExecuteURL.


<httpErrors> 
    <!--Remove inherited 500 error page setting --> 
    <remove statusCode='500' subStatusCode='-1'/> 
    <!--Override the inherited 500 error page setting with the 'My500.html' as its path--> 
    <error statusCode='500' subStatusCode='-1' prefixLanguageFilePath='' path='/My500.html' responseMode='ExecuteURL'/> 
</httpErrors> 
2

Parece que está utilizando una URL relativa al servidor, intente configurar responseMode="ExecuteURL", desde MSDN.

ExecuteURL

sirve contenido dinámico (por ejemplo, un archivo .asp) especificado en la ruta atributo para el error personalizado. Si responseMode está configurado en ExecuteURL, el valor de ruta tiene que ser un servidor relativo a URL. El valor numérico es 1.

redirección

redireccionamientos navegadores cliente a un URL especificado en la ruta de atributos que contiene el archivo de error personalizado. Si responseMode está configurado en Redirigir, el valor de ruta tiene que ser una URL absoluta. El valor numérico es 2.

19

También puede ser necesario para establecer el atributo existingReponse en el elemento httpErrors así:

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <clear /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 
+0

Esto es lo que causaba problemas con el último Orchard 1.4, aplausos. – Sarkie

+0

@Kiquenet http://www.iis.net/configreference/system.webserver/httperrors No estoy seguro pero Auto resolvió mi problema. – Ernesto

+0

¿Cuál es el código fuente de *** ErrorHandler.aspx ***? – Kiquenet

0

Asegúrese de que tiene la configuración de la página de error de redirección en IIS función adecuada. Para comprobar esto, desde la página de páginas de error en IIS Manager, haga clic en Editar configuración de características y asegúrese de que páginas de error personalizado estén marcadas si está probando las redirecciones desde el servidor web. Si está realizando pruebas de forma remota, puede dejar Se verificaron los errores detallados para las solicitudes locales y las páginas de error personalizadas para las solicitudes remotas. Esta parece ser la opción predeterminada en mi entorno de prueba.

3

Si está utilizando ExecuteURL, la ruta de página de error personalizada debe estar en el mismo grupo de aplicaciones que la propia aplicación.

Por razones de arquitectura, IIS 7.0 solo puede ejecutar la URL si está ubicada en el mismo grupo de aplicaciones. Use la función redirigir para ejecutar un error personalizado en un grupo de aplicaciones diferente.

Cuestiones relacionadas