IIS7 personalizado 404 no se muestra

creó un nuevo sitio web IIS7 con el grupo de aplicaciones .NET 4.0.

Las URL que terminan en .aspx muestran código 404 personalizado. Cualquier otra cosa proporciona la página de error del servidor azul “HTTP Error 404.0 – No encontrado. El recurso que está buscando ha sido eliminado, ha cambiado su nombre o no está disponible temporalmente”. (entonces nada que ver con IE)

        

también intenté

  

pero eso solo resultó en una respuesta vacía.

Solo he encontrado una referencia a la utilidad de ejecutar el appcmd para probar el manejo de errores HTTP personalizado, pero aquí están los resultados.

 C:\Windows\System32\inetsrv>appcmd list config "http://mysite/file.notexist" -section:httpErrors              

lo cual es extraño porque en el administrador iis7 las páginas de error muestran

 404 /pages/404.aspx Execute URL Local 

.Net Error Pages no muestra nada, aunque sí tenía una entrada allí.

Pregunta 1: ¿qué pasos debo seguir para que un sitio asp.net 4 iis7 completamente nuevo tenga una página de error .net personalizada para cada resultado 404?

Pregunta 2: ¿por qué el controlador de .net funciona para archivos .aspx y nada más?

nota: establezca el 404 en el nivel del servidor y el comando appcmd mostró el 404 personalizado en la ruta, pero no hizo ninguna diferencia en que el sitio no muestra 404.

Así que supongo que es una pista falsa.

la respuesta fue usar

      

y no tener ningún sistema.web customErrors

esto funcionó para solicitudes tanto .aspx como no .aspx.

Extrañamente, esta combinación no apareció en ninguna de las publicaciones del blog ni en las respuestas de stackoverflow que había investigado, solo fue suerte que lo probé.

  

funcionó para mí en IIS 7 (Windows Server 2008 R2).

Mi problema era que tenía esto en mi web.config, pero en una . Moviéndolo a la raíz solucionó.

 < ?xml version="1.0" encoding="utf-8"?>  ...  ...    

Para IIS7 en adelante, vaya con httpErrors solamente, como respuesta de rob: https://stackoverflow.com/a/6661699

Solo para agregar, a menos que necesite / quiera usar ASP.NET para representar su página de error, recomendaría usar archivos HTML estáticos para eliminar la dependencia de ASP.NET. Solo asegúrese de omitir cualquier barra diagonal anterior y usar barras diagonales inversas para el rest de la ruta, por ejemplo

  

Establezca responseMode="File" para retener el código de estado correcto.

Estaba teniendo este problema con mi aplicación web y lo resolví comentando la línea de redirección:

      

En IIS, allowAbsolutePathsWhenDelegated (en Configuration Editor -> system.webServer / httpErrors) estaba bloqueado y no puedo cambiar el valor de false a true.