Implementación del sitio web: 500 - Error interno del servidor

189

Estoy tratando de implementar una aplicación ASP.NET. He implementado el sitio en IIS, pero cuando lo visito con el navegador, me muestra esto:

Error del Servidor

Error interno de servidor 500.

Hay un problema con el recurso que está buscando y no se puede mostrar.

Después de jugar con el web.config, obtuve:

La página no se puede mostrar porque se ha producido un error interno del servidor.

¿Cómo puedo ver el problema real detrás de este error del servidor?

Jacob Jedryszek
fuente
1
Asegúrese de tener la asignación de comodines en su lugar para la aplicación MVC en el directorio ...
sajoshi

Respuestas:

298

Primero, debe habilitar y ver errores detallados de sus mensajes web, porque este es un mensaje general sin dar información sobre lo que realmente está sucediendo por razones de seguridad.

Con el error detallado, puede localizar el problema real aquí.

Además, si puede ejecutar el navegador en el servidor , obtendrá detalles sobre el error, porque el servidor reconoce que usted es local y se lo muestra. O si puedes leer el registro del servidor utilizando el Visor de eventos, también verá los detalles de su error.

En IIS 6

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

En IIS 7

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

Nota: puede evitar el Debug = true . Solo necesita cerrar los errores personalizados por un tiempo y obtener la página de error detallada.

Referencia: Habilitación de mensajes de error personalizados de Windows en los artículos de ayuda de Go Daddy .

Además, esto puede ayudar: Cómo habilitar los mensajes de error detallados (de IIS).

Aristos
fuente
9
¡Gracias por la publicacion! La parte que lo hizo por mí fue: <httpErrors errorMode = "Detail" />
jaseeey
@codemonkeyliketab Debe ser el mismo ... o similar ... si ejecuta iis express en su computadora, abra su EventViewer ...
Aristos
44
run the browser on the serverfuncionó para mí ... gracias hermano
Rajshekar Reddy
1
@Learning sí hay - se habilita el error detallado sólo por un período corto de tiempo a sido capaz de encontrar algunos de sus errores y hacer su aplicación en ejecución - a continuación, se cierra de nuevo
Aristos
1
Gracias, fue útil habilitar mensajes de error detallados de IIS.
Vadim Tofan
25

Me estaba sacando el pelo por este problema. Asegurándome de que la siguiente entrada estaba en el web.configarchivo raíz lo arregló para mí:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

Recuerde que debe agregar esto a los elementos XML existentes , si ya están allí. No puede simplemente agregar al final del archivo, porque no puede tener múltiples copias de ningún elemento.

Joshua Frank
fuente
9

Para mí, el siguiente código en web.config fue el culpable. Cuando lo eliminé, el sitio web funcionó bien.

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>
usuario3638709
fuente
1
Gracias ... funcionó para mí, pero ¿es necesario mimeMap para mostrar videos?
panky sharma
9

Finalmente resolví este error del "servidor interno 500" al implementar la aplicación ASP.NET MVC 3.0 en el alojamiento compartido godaddy.ocm.

de alguna manera hubo discrepancias en la versión de los archivos DLL referenciados y la versión mencionada en el archivo web.config .

Probé todas las opciones mencionadas en varios foros. Nada ayudó, aunque todos sugirieron el mismo tipo de solución, pero de alguna manera no funcionó en mi escenario. Finalmente después de golpearme la cabeza durante dos días. Decidí eliminar todas las referencias de archivos DLL y eliminar web.cofig (hacer una copia local) del proyecto y dejar que la aplicación arroje el error y luego agregar los archivos DLL uno por uno haciendo una copia a local = true.

Después de agregar todos los archivos DLL, creé una nueva aplicación ASP.NET MVC y copié el web.config de la nueva aplicación en mi aplicación real. Entonces mi aplicación actual ahora tiene un nuevo web.config, y luego copié la cadena de conexión y otras referencias de la copia local de web.config que guardé.

Acabo de compilar la aplicación y publiqué en una carpeta local y FTP la carpeta publicada para goDaddy.

Funcionó y finalmente mi problema se resolvió.

Manish kumar
fuente
Mi error resuelto por: stackoverflow.com/questions/11359957/… También tuve que instalar Elmah
Per G
7

En mi caso, puse un error en mi web.configarchivo. La clave de la aplicación de alguna manera se colocó bajo la etiqueta <appSettings>. Pero me pregunto por qué no muestra un error de configuración. El error 500 es demasiado genérico para investigar el problema.

Van Thi
fuente
Acabo de tener lo mismo aquí. web.config se copió por error en un subdirectorio y causó errores erroneos, aunque configuré "mostrar errores detallados" en verdadero.
Avni Yayin
7

Mi primer intento de publicar y luego ejecutar un sitio muy simple que solo sirve HTML produjo "La página no se puede mostrar porque se ha producido un error interno del servidor".

El problema: tenía el sitio configurado en .NET 3.5 en Visual Studio (haga clic con el botón derecho en el proyecto del sitio web -> Páginas de propiedades -> Compilar), pero tenía el sitio web en Azure configurado como .NET 4.0. ¡Uy! Lo cambié a 3.5 en Azure, y funcionó.

kenswdev
fuente
5

Además de las otras sugerencias, asegúrese de cambiar el existingResponseatributo del httpErrorsnodo a Autopartir de Replace, o eliminar esa propiedad por completo.

<httpErrors existingResponse="Replace" />
                              ^^^^^^^ not going to work with this here
ErikE
fuente
4

IIS también informa el código de estado 500 sin ninguna sugerencia de registro de eventos si no hay permisos suficientes en el directorio de inicio físico (es decir, IIS_IUSRS no tiene acceso).

equivocación
fuente
3

Error 500 del servidor: error interno del servidor. Hay un problema con el recurso que está buscando y no se puede mostrar. Goddady Hosting - Web - Economía - Windows Plesk

En mi caso, reemplazo este código:

<configuration> 
  <system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
  </system.webServer> 
  <system.web> 
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web> 
</configuration>

Luego cambie el marco 3.5 al marco 4. Muestra mi error detallado. Borro el código en:

<httpModules></httpModules>

Resolvió mi problema.

ThanGio
fuente
3

Para IIS 8 Hay un paso adicional que hacer además de cambiar customErrors = Off para mostrar el contenido del error.

<system.web>
   <customErrors mode="Off" />
</system.web>
<system.webServer>
   <httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>

Raúl respondió la pregunta en este enlace Desactiva los errores personalizados de IIS8 por Raúl

Michelle
fuente
te perdiste el cierre / después de "Detallado"
manuel-84
Esta solución era lo que se necesitaba para IIS 10.0.14393.0.
Marcus Parsons
2

Probablemente su archivo web.config esté incorrecto o le falte alguna etiqueta. Resolví mi problema usando las etiquetas de configuración correctas para .NET 4.

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <namespaces>
            <clear/>
            <add namespace="System"/>
            <add namespace="System.Collections"/>
            <add namespace="System.Collections.Specialized"/>
            <add namespace="System.Configuration"/>
            <add namespace="System.Text"/>
            <add namespace="System.Text.RegularExpressions"/>
            <add namespace="System.Web"/>
            <add namespace="System.Web.Caching"/>
            <add namespace="System.Web.SessionState"/>
            <add namespace="System.Web.Security"/>
            <add namespace="System.Web.Profile"/>
            <add namespace="System.Web.UI"/>
            <add namespace="System.Web.UI.WebControls"/>
            <add namespace="System.Web.UI.WebControls.WebParts"/>
            <add namespace="System.Web.UI.HtmlControls"/>
        </namespaces>
    </pages>
    <authentication mode="None"/>
</system.web>
Edu Pelais
fuente
2

Me di cuenta de que los permisos para los archivos y carpetas en su servidor también son importantes. Subí mis archivos desde un sistema operativo Linux y, por lo general, los permisos son limitados para leer y escribir. Entonces, cuando se cargan, los permisos siguen siendo los mismos que en la máquina local.

Tuve el mismo error y acabo de cambiar los permisos para la carpeta que había subido y el error desapareció.

Espero que ayude a alguien.

Mark Kasina
fuente
¿No es esta respuesta básicamente igual a la respuesta de julio de 2014 ?
Wai Ha Lee
1

500 Error interno Error de
alojamiento de Windows

Problema de alojamiento de Godaddy

He estado enfrentando el mismo problema, pero ahora mi problema se ha resuelto. Siempre use en este hosting este funciona.

También les recomendaré a todos que hagan los cambios que deseen realizar en su archivo web.config. Hágalo uno por uno y pruebe lo mismo en el dominio en vivo para que pueda encontrar el problema exacto o las características que su proveedor de alojamiento no le permite usar.

<?xml version="1.0"?>

<configuration>
    <system.web>
        <trust level="Medium"/>
        <compilation debug="true" targetFramework="4.5">
            <assemblies>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>

        <httpRuntime targetFramework="4.5" />
        <sessionState mode="InProc" cookieless="false" timeout="90" />
        <authentication mode="Forms">
            <forms loginUrl="default.aspx"  
                   defaultUrl="default.aspx"
                   protection="All"
                   cookieless="UseCookies"
                   slidingExpiration="false"
                   timeout="30"
                   name="aeon.corpusjuris.in" />
        </authentication>

        <customErrors 
            mode="Off" 
            defaultRedirect="errorpage.aspx">

            <error statusCode="403" redirect="errorpage.aspx"/>
            <error statusCode="404" redirect="errorpage.aspx"/>
        </customErrors>

        <!--  <httpModules>
                <add name="HTTPCaching" type="HTTPCaching"/>
            </httpModules>
        -->
    </system.web>

    <runtime>
        <performanceScenario value="HighDensityWebHosting"  />
    </runtime>

    <system.webServer>
        <!--  <modules runAllManagedModulesForAllRequests="true">
                <add name="HTTPCaching" type="HTTPCaching"/>
            </modules>
        -->

        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
            </files>
        </defaultDocument>

        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>

        <staticContent>
            <clientCache cacheControlCustom="public"
                         cacheControlMaxAge="60:00:00"
                         cacheControlMode="UseMaxAge" />
        </staticContent>
    </system.webServer>

    <system.web.extensions>
         <scripting>
             <webServices>
                 <jsonSerialization maxJsonLength="90000000">
                 </jsonSerialization>
             </webServices>
         </scripting>
    </system.web.extensions>

</configuration>
Tushar Tyagi
fuente
en mi caso, el error fue causado por <httpRuntime enableVersionHeader = "false" /> en web.config
b3wii
1

Si está utilizando un HttpHandler personalizado (es decir, implementando IHttpModule), asegúrese de inspeccionar las llamadas a su Errormétodo.

Podría hacer que su controlador arroje el real HttpExceptions(que tiene una Messagepropiedad útil ) durante la depuración local como esta:

    public void Error(object sender, EventArgs e)
    {
        if (!HttpContext.Current.Request.IsLocal)
            return;
        var ex = ((HttpApplication)sender).Server.GetLastError();
        if (ex.GetType() == typeof(HttpException))
            throw ex;
    }

También asegúrese de inspeccionar las excepciones InnerException.

Protector uno
fuente
1

500 error interno del servidor puede surgir debido a varias razones. La primera razón podría ser que el archivo web.config no se ha creado correctamente, significa que ha perdido alguna etiqueta en el archivo web.config. En segundo lugar, este error puede deberse a algún problema de código. Para verificar qué componente de la aplicación web está causando este error, puede verificar la configuración de la aplicación en el archivo web.config. El detalle de resolver y rastrear 500 errores internos del servidor con el diagrama se proporciona aquí:

Manish
fuente
Este registro de dominio expiró el 15/06/2018.
Patricia
El enlace ahora está sirviendo malware. He eliminado el enlace
Liam
0

Asegúrese de que su cuenta use IIS 7. Para obtener más información, consulte Personalizar la configuración de IIS en su cuenta de alojamiento de Windows. Siga las instrucciones en Cambio del modo de canalización en su cuenta de alojamiento de Windows IIS 7. Seleccione el modo de tubería integrada. En la sección Referencias del proyecto, configure Copiar local en Verdadero para los siguientes ensamblados:

System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages

Agregue los siguientes ensamblados a su proyecto y luego configure Copiar local en Verdadero:

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.
Kurkula
fuente
0

A veces, la razón podría ser que uno de sus ensamblados .dll no esté registrado correctamente en el servidor.

Por ejemplo, puede ejecutar con éxito una aplicación web C # Excel en su máquina local con Office instalado, mientras obtiene el error 500 en la implementación del servidor, porque no hay una suite de Office instalada en el servidor y, por lo tanto, obtiene el error del servidor.

usuario3745869
fuente
0

Para aquellos que tienen esta posibilidad (VPS hosting no web hosting):

Conéctese a su servidor de alojamiento a través de Escritorio remoto. Abra el navegador web desde su escritorio remoto y verá la descripción detallada del error.

No necesita modificar web.config o exponer ningún detalle a nadie más.

Tomás Kubes
fuente
0

Si está utilizando IIS 8.5, es posible que deba cambiar la configuración de ID de ApplicationPool de ApplicationPoolId a NetworkService

Haga clic con el botón derecho en el grupo de aplicaciones en cuestión, haga clic en "Configuración avanzada" y luego desplácese hacia abajo hasta ID ; probablemente se establecerá en ApplicationPoolIdentity . Haga clic en el botón (..) y seleccione NetworkService de la lista desplegable.

También asegúrese de que si se trata de una aplicación .NET 2.0, no hace referencia al marco 4.0 en su grupo de aplicaciones.

Steve Woods
fuente
0

Antes de cambiar el web.configarchivo, comprobaría que la .NET Frameworkversión que está utilizando es exactamente (lo digo en serio, 4.5! = 4.5.2) la misma en comparación con su GoDaddyconfiguración (configuración de ASP.Net en su Plesk panel). Eso debería cambiar automáticamente su archivo web.config al marco correcto.

También tenga en cuenta que por ahora (enero '16), GoDaddytrabaja con ASP.Net 3.5y 4.5.2. Para usar 4.5.2con Visual Studio, debe ser 2012o más reciente, y si no es 2015, debe descargar e instalar .NET Framework 4.5.2 Developer Package.

Si aún no funciona, entonces sí, su próximo paso debería ser habilitar informes detallados de errores para que pueda depurarlo.

Sergio R
fuente
0

Recientemente tuve el mismo problema, el espacio en disco estaba lleno en el servidor. Despejar algo de espacio ha resuelto el problema.

Achintya
fuente