Instalé el sitio web en mi máquina local usando IIS 7 con éxito. Pero cuando lo implementé en el servidor en vivo, recibí el siguiente error:
"No se puede mostrar la página porque se ha producido un error interno del servidor" Nada más.
Usando el mismo IIS 7 en vivo y también configurado para tener Detailed errors en el módulo de páginas de error, pero sigue obteniendo lo mismo. ¿Qué puede ser una razón?
Gracias
Acabo de recibir este error y fue causado por un tipo MIME de contenido estático duplicado en web.config
Este error se devolvía solo en archivos estáticos; por ejemplo, imágenes, css, archivos js decían este error (texto en sí mismo, ningún otro html o texto en la respuesta).
La forma de depurar esto es buscar en la configuración web en contenido estático. Aquí tenemos cargada una extensión de archivo json. Esto era necesario en IIS7, pero eliminará la aplicación si se usa en IIS8 porque json ahora está precargado en el nivel del servidor.
<staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>Entonces, la solución es eliminar cualquiera de estas entradas de mimeType una a la vez para confirmar cuáles son necesarias y cuáles eliminan su aplicación.
Actualizar
En realidad, la mejor solución fue proporcionada por un comentarista aquí. Puede eliminar y luego agregar, lo que siempre funcionará independientemente de si ya está definido o no. Me gusta esto:
<remove fileExtension=".json" /> <mimeMap fileExtension=".json" mimeType="application/json" />Creo que el mejor primer enfoque es asegurarse de activar los mensajes de error detallados a través de su archivo web.config, como este:
<configuration> <system.webServer> <httpErrors errorMode="Detailed"></httpErrors> </system.webServer> </configuration>Después de hacer esto, debería recibir un mensaje de error más detallado del servidor.
En mi caso particular, el error más detallado señaló que mi sección <defaultDocument> del archivo web.config no estaba permitida en el nivel de carpeta donde había colocado mi web.config. Decía
Esta sección de configuración no se puede utilizar en esta ruta. Esto sucede cuando la sección está bloqueada en un nivel principal. El bloqueo es predeterminado (overrideModeDefault="Deny") o se establece explícitamente mediante una etiqueta de ubicación con overrideMode="Deny" o el legado allowOverride="false". "
Modifique su web.config para mostrar los detalles del error del servidor:
<system.web> <customErrors mode="Off" /> </system.web>Es posible que también deba eliminar/comentar la siguiente sección de httpErrors
<system.webServer> <httpErrors errorMode="Custom"> <remove statusCode="404" /> <error statusCode="404" path="/Error/Error404" responseMode="ExecuteURL" /> <remove statusCode="500" /> <error statusCode="500" path="/Error/Error500" responseMode="ExecuteURL" /> <remove statusCode="403" /> <error statusCode="403" path="/Error/Error403" responseMode="ExecuteURL" /> </httpErrors> </system.webServer>Según mi experiencia, si tiene un error de servidor directamente, esto puede deberse a una falta de coincidencia de la versión del ensamblado.
Verifique lo que se declara en web.config y el ddl real en el proyecto de la carpeta bin.