Pregunta

Configuré la página del controlador 404 en web.config, pero funciona SOLAMENTE cuando la extensión de la URL es .aspx (u otra que es manejada por ASP.NET). Sé que puedo configurar una página HTML estática en las opciones del sitio web, pero quiero tener una página. ¿Hay opciones para asignar la página del controlador ASPX para todas las extensiones de solicitud en IIS?

¿Fue útil?

Solución

La pregunta directa era si hay opciones para asignar el controlador ASPX a todas las extensiones de solicitud: Sí, la hay. Discutiré cómo hacerlo en breve.

Primero, creo que el "oculto" La pregunta, la respuesta que realmente desea, es si existe o no una forma de redirigir todos los errores 404 para páginas que no sean ASPX, ASMX, etc. Sí, la hay, y esta es la opción mejor si resolverá el problema que tienes.

Para redirigir todos los 404 en IIS 6, haga clic con el botón derecho en la raíz de su aplicación web (ya sea en su propio sitio o en un directorio virtual en el sitio principal), y elija " Propiedades. " A partir de ahí, elija los " Errores personalizados " lengüeta. Busque 404 en la lista y cámbielo a la redirección que desee.

Ahora, si eso no es suficiente, y realmente espero que sí, sí, puede ejecutar cada página a través del controlador ASPX. Sin embargo, hacerlo tiene un costo bastante alto en términos de eficiencia: el servicio de imágenes / HTML sin procesar es considerablemente más rápido que cualquier cosa dinámica.

Para hacer esto, haga clic con el botón derecho en la raíz de la aplicación web y seleccione "Propiedades". Elija el " Directorio de inicio " lengüeta. Haga clic en "Configuración"; Aparecerá una nueva ventana. Copie la ruta de uno de los servicios de la página ASP.NET y luego úsela para un mapa de aplicación comodín.

Tenga en cuenta, nuevamente, esta es la respuesta incorrecta la mayor parte del tiempo. Afectará negativamente su rendimiento y es el equivalente a usar una motosierra para tallar un pavo. Recomiendo encarecidamente la primera opción sobre esta, si funciona para usted.

Otros consejos

Para información:

Esta es una de las muchas cosas buenas que trae IIS7: todas las páginas se enrutan a través del controlador, de modo que puede hacer 404s personalizados y, de manera útil, seguridad de nivel de archivo y directorio para cualquier (basado en en el mismo material web.config que para los archivos asp.net anteriores a IIS7).

Por lo tanto, teóricamente, utiliza II7 " es una respuesta (será " la " respuesta en el tiempo), pero, por supuesto, no es muy práctica si no está alojado / alojado en W2k8 (o superior).

web.config solo puede configurar páginas de errores para páginas controladas por su sitio web. Si tiene otras páginas fuera del alcance de la aplicación ASP.Net, configure el manejo de ellas en IIS. Hay una opción allí para configurar la página 404 donde puede apuntarla a su página personalizada.

Solo otra cosa que se me ocurre es pasar TODAS las extensiones a asp.net.

De esta manera, asp.net procesa todos los tipos de archivos y su página de error personalizada funcionará.

En la configuración de la aplicación IIS, puede establecer una asignación de comodines (". * ") a C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll

  1. Puede configurar la asignación de comodines en IIS (Configuración de la aplicación / Asignaciones / Asignaciones de comodines / - simplemente configure aspnet_isapi.dll como ejecutable y desmarque la casilla Verificar que el archivo existe) que enrutará todas las solicitudes entrantes a su aplicación - para que pueda controlar el comportamiento directamente desde él.

  2. No tiene que configurar una página estática en la configuración de su aplicación IIS. Imho, debería poder configurar una URL válida (por ejemplo, /err_handler.aspx) desde su aplicación que se usará como página de destino en caso de un error específico del servidor.

En IIS puede establecer un error personalizado para errores 404 y dirigirlo a una URL en las propiedades del sitio.

Muestra un html estático por defecto C: \ WINDOWS \ help \ iisHelp \ common \ 404b.htm

Puedes cambiarlo a una URL relativa en tu sitio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top