IIS 7.5, 2008rc2, asp clásico, mensaje de error 500:
La página no se puede mostrar porque se ha producido un error interno del servidor.
Necesito saber cómo configurar IIS para obtener un error más detallado.
He intentado establecer en verdadero todas las opciones de depuración en la configuración ASP.
Pero eso no funcionó. ¿Alguien puede ayudarme?
asp-classic
error-handling
iis-7.5
egidiocs
fuente
fuente
Respuestas:
He llegado a un mismo problema y se fija la misma manera que Alex K .
Entonces, si "Enviar errores al navegador" no funciona, configure también esto:
Páginas de error -> 500 -> Editar configuración de funciones -> "Errores detallados"
También tenga en cuenta que si el contenido de la página de error devuelto es bastante corto y está usando IE, IE ignorará el contenido útil enviado por el servidor y le mostrará su propia página de error genérico. Puede desactivar esto en las opciones de IE o usar un navegador diferente.
fuente
Turn Windows features on or off > Internet Information Services > World Wide Web Services > Common HTTP Features > [✓] HTTP Errors
.HOW-TO
para páginas de error NET ?Si está en un servidor remoto, puede configurar su archivo web.config de la siguiente manera:
fuente
<system.webserver>
configuración fue suficiente en mi caso, gracias.system.webServer
sección es leída por IIS 7+ incluso cuando ejecuta ASP clásicocustomErrors
(por ejemplo, IIS 7+, ASP.NET, Classic AppPool ) tedgustaf.com/blog/2011/5/…Haga doble clic en "ASP" en la pantalla de inicio del sitio en el administrador de IIS, expanda "Propiedades de depuración", habilite "Enviar errores al navegador" y haga clic en "Aplicar".
En "Páginas de error" en la pantalla de inicio, seleccione "500", luego "Editar configuración de funciones" y seleccione "Errores detallados".
Tenga en cuenta que se aplican los mismos pasos para IIS 8.0 (Windows Server 2012).
fuente
Después de probar la respuesta de Vaclav y Alex , aún tenía que desactivar "Mostrar mensajes de error HTTP amigables" en IE
fuente
En web.config bajo
reemplazar (o agregar) la línea
con
Esto se debe a que, de manera predeterminada, IIS7 intercepta códigos de estado HTTP, como 4xx y 5xx, generados por aplicaciones más adelante.
A continuación, habilite " Enviar errores al navegador " en la sección "ASP" y en " Páginas de error / Editar configuración de funciones ", seleccione "Errores detallados".
Además, otorgue permisos de escritura en la carpeta del sitio web al grupo integrado IIS_IUSRS .
fuente
Set-WebConfigurationProperty '/system.WebServer/httpErrors' -Name errorMode -Value Detailed
TLDR: Primero determine de qué parte de la tubería está obteniendo el error (desplácese buscando capturas de pantalla de algo que se parezca a su error), realice cambios para obtener algo nuevo, repita.
Primero determine qué mensaje de error está viendo realmente.
Si está viendo el archivo ubicado aquí ...
% SystemDrive% \ inetpub \ custerr \\ 500.htm
... que generalmente se ve así:
... entonces sabe que está viendo la página de error configurada actualmente en ** IIS ** y NO necesita cambiar la configuración de ASP.net customErrors, la configuración de detalles de error asp o la configuración del navegador "mostrar errores http amigables".
Es posible que desee ver la ruta de referencia anterior en lugar de confiar en mi captura de pantalla en caso de que alguien la haya cambiado.
"Sí, veo el error descrito anteriormente ..."
En este caso, está viendo la configuración de < httpErrors > o en el Administrador de IIS es Páginas de error -> Editar configuración de funciones . El valor predeterminado para esto es errorMode = DetailLocalOnly en el nivel del nodo del servidor (en oposición al nivel del sitio), lo que significa que si bien verá esta página de error configurada mientras está remota, debería poder iniciar sesión localmente en el servidor y ver la lista completa error que debería verse así:
Debería tener todo lo que necesita en ese momento para corregir el error actual.
"Pero no veo el error detallado incluso navegando en el servidor"
Eso deja un par de posibilidades.
"Iniciar sesión en el servidor no es una opción para mí"
Cambie los httpErrors de su sitio a "Detallado" para que pueda verlo de forma remota. Pero si no funciona, su error ya podría ser un error de configuración, consulte el n. ° 3 inmediatamente anterior. Por lo tanto, puede estar atrapado con el n. ° 4 o n. ° 5 y necesitará a alguien de su equipo de servidores.
"No veo la página de error descrita anteriormente. Estoy viendo algo diferente"
Si ves esto ...
... y esperas ver algo como esto ...
... entonces necesita cambiar "Enviar errores al navegador" a verdadero en el Administrador de IIS, en Sitio -> IIS -> ASP -> Propiedades de depuración
Si ves esto ...
o esto...
... necesita deshabilitar errores amigables en su navegador o usar la vista web de Fiddler para ver la respuesta real frente a lo que su navegador elige mostrarle.
Si ves esto ...
... entonces los errores personalizados están funcionando pero no tienes una página de error personalizada (por supuesto, en este punto hablamos de .net y no de asp clásico). Debe cambiar su etiqueta customErrors en su web.config a RemoteOnly para ver en el servidor o Off para ver de forma remota.
Si ve algo que tiene el estilo de su sitio, es probable que los errores personalizados estén en On o RemoteOnly y muestre la página personalizada (Vistas-> Compartido-> Error.cshtml en MVC, por ejemplo). Dicho esto, es poco probable pero posible que alguien haya cambiado las páginas en IIS para httpErrors, así que vea la primera sección sobre eso.
fuente
intente establecer el valor del atributo httpErrors "existenteResponse" en "PassThrough". La mía se estableció en "Reemplazar", lo que hacía que el YSOD no se mostrara.
fuente
Una cosa que nadie ha mencionado es como una solución muy rápida y temporal, puede ver el error en el host local de ese servidor web.
fuente
También puede verificar que si cambió la carpeta de su sitio web principal (
c:\inetpub\wwwroot
) a otra carpeta, debe otorgar permiso de lectura al grupo IIS_IUSRS en la nueva carpeta.fuente
Las personas que han probado TODO y simplemente NO PUEDEN obtener los detalles del error para mostrar, como yo, es una buena idea verificar los diferentes niveles de configuración. Tengo un archivo de configuración en el nivel del sitio web y en el nivel de la aplicación (dentro del sitio web) verifique ambos. Además, resultó que tenía los Errores detallados deshabilitados en el nodo más alto de IIS (justo debajo de la Página de inicio, tiene el mismo nombre que el nombre del equipo del servidor web). Verifique las páginas de error allí.
fuente
Lo encontré.
http://blogs.iis.net/ksingla/archive/2009/02/16/iis-7-5-updates-to-custom-errors-and-compression.aspx
ejecute cmd como administrador, vaya a su carpeta system32 \ inetsrv y ejecute:
Ahora puedo ver errores detallados de asp.
fuente
Si ejecuta el navegador en el servidor y prueba su url del proyecto con la IP local, ha recibido todos los errores de ese proyecto sin una página de error general (por ejemplo, página de error 500).
fuente