Tengo un sitio web ASP.NET casi en blanco que he creado (1 página). Deliberadamente he codificado un error de división por cero en Page_Load. Si el grupo de aplicaciones está configurado en "ASP.NET 4.0 Pipeline: Integrated", entonces no veo el error de carga de la página, sino que obtengo:

Error de tiempo de ejecución

Descripción: se produjo un error de aplicación en el servidor. La configuración actual de errores personalizados para esta aplicación evita que se vean los detalles del error de la aplicación.

La carpeta está configurada para ser una aplicación en IIS y las entradas web.config correctas para mostrar errores están presentes, pero por alguna razón, no puedo hacer que .NET me muestre el mensaje de error correcto a menos que cambie el grupo de aplicaciones a ASP.NET Classic . ¿Por qué es necesario el modo "clásico"? Me estoy tirando de los pelos porque todos los demás sitios en la misma máquina funcionan bien (IIS7) y, sin embargo, cualquier sitio nuevo que cree parece tener el mismo problema.

¿Alguna idea de lo que podría estar causando que IIS no reconozca que esta carpeta es una aplicación o que no muestre el mensaje de error correcto?

EDITAR: Web.Config es:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <customErrors mode="Off" />
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
</configuration>
3
NickG 30 mar. 2012 a las 13:27
Tienes que habilitar la propiedad de depuración en asp.net, creo
 – 
Prabhavith
30 mar. 2012 a las 13:30
¿Ha configurado en web.config correctamente? ¿Puedes publicar esa parte de configuración aquí?
 – 
walther
30 mar. 2012 a las 13:31
Agregado arriba ... También probé
 – 
NickG
30 mar. 2012 a las 13:40
Si desea ver el error, puede crear una página de error personalizada y usar Response.TrySkipIisCustomErrors y establecerlo en verdadero. Esto anulará el manejo de la página de error global de IIS desde dentro de su página. Más información aquí: west-wind.com/weblog/posts/745738.aspx < / a>
 – 
Imran Rizvi
30 mar. 2012 a las 13:52
Gracias, pero prefiero intentar averiguar por qué la visualización normal de errores no funciona. Funciona bien para todos los demás sitios de mi máquina.
 – 
NickG
30 mar. 2012 a las 14:02

1 respuesta

La mejor respuesta

De acuerdo, después de buscar durante mucho tiempo y comparar la configuración con una máquina en funcionamiento, descubrí que la respuesta en realidad está en la configuración del grupo de aplicaciones .NET 4.

Una vez que marqué "Habilitar aplicaciones de 32 bits" (ver captura de pantalla) en la pantalla de configuración avanzada en IIS para el grupo de aplicaciones, todo comenzó a comportarse normalmente. Solo puedo asumir que hay algo instalado en algún lugar que requiere esta configuración para que este grupo de aplicaciones funcione correctamente y eso me impedía ver el mensaje de error real. Todavía me interesaría saber si alguien descubre por qué esto soluciona el problema o cómo puedo mostrar el mensaje de error "real" que debería aparecer cuando intente usar este grupo de aplicaciones sin marcar "Habilitar aplicaciones de 32 bits".

IIS App Pool Advanced Settings

1
NickG 30 mar. 2012 a las 17:26
Obtiene ese error genérico porque ese error ocurre instantáneamente cuando intentaba solicitar su aplicación. Lo que significa que su error de división por cero ni siquiera ha sucedido todavía. Dado que el grupo de aplicaciones no permitía aplicaciones de 32 bits (su aplicación es de 32 bits), arrojaba un error tan temprano en la canalización que IIS no tuvo más remedio que mostrar ese error genérico.
 – 
CheckRaise
30 mar. 2012 a las 19:09
¿Pero realmente no hay forma de ver cuál fue ese error? Me gustaría saber qué he instalado que requiere que la opción "habilitar 32 bits" esté activada.
 – 
NickG
30 mar. 2012 a las 22:14