Distribuzione del sito Web: 500 - Errore interno del server


189

Sto cercando di distribuire un'applicazione ASP.NET. Ho distribuito il sito su IIS, ma quando lo visito con il browser, mi mostra questo:

Errore del server

500 - Errore interno del server.

Si è verificato un problema con la risorsa che stai cercando e non può essere visualizzato.

Dopo aver armeggiato con web.config, ho ottenuto:

La pagina non può essere visualizzata perché si è verificato un errore interno del server.

Come posso vedere il vero problema dietro questo errore del server?


1
Assicurati di avere il mapping dei caratteri jolly in atto per l'applicazione MVC nella directory ...
sajoshi

Risposte:


298

Innanzitutto, è necessario abilitare e visualizzare errori dettagliati dei messaggi Web, poiché si tratta di un messaggio generale senza fornire informazioni su ciò che sta realmente accadendo per motivi di sicurezza.

Con l'errore dettagliato, puoi individuare il vero problema qui.

Inoltre, se è possibile eseguire il browser sul server , si ottengono dettagli sull'errore, poiché il server riconosce che si è locali e te lo mostra. Oppure, se riesci a leggere il registro del server utilizzando il Visualizzatore eventi, vedi anche i dettagli del tuo errore.

Su IIS 6

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

Su 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: è possibile evitare Debug = true . Hai solo bisogno di chiudere gli errori personalizzati per un po 'e ottenere la pagina di errore dettagliata.

Riferimento: Abilitazione della messaggistica di errore personalizzata di Windows negli articoli della guida di Go Daddy .

Inoltre, questo può aiutare: Come abilitare i messaggi di errore dettagliati (da IIS).


9
Grazie per il post! La parte che l'ha fatto per me è stata: <httpErrors errorMode = "Dettagliato" />
jaseeey

@codemonkeyliketab Deve essere lo stesso ... o simile ... se esegui iis express sul tuo computer, apri EventViewer ...
Aristos

4
run the browser on the serverha funzionato per me .. grazie fratello
Rajshekar Reddy,

1
@Learning sì, c'è - abiliti l'errore dettagliato solo per un breve periodo di tempo per poter trovare alcuni dei tuoi errori e far funzionare la tua app - poi la chiudi di nuovo
Aristos

1
Grazie, l'abilitazione di messaggi di errore dettagliati da IIS ha aiutato.
Vadim Tofan

25

Mi stavo togliendo i capelli per questo problema. Assicurandomi che la seguente voce fosse nel web.configfile root per me risolta:

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

Ricorda che devi aggiungerlo agli elementi XML esistenti , se sono già presenti. Non puoi semplicemente aggiungere alla fine del file, perché non puoi avere più copie di qualsiasi elemento.


9

Per me, il seguente codice nel web.config era il colpevole. Quando l'ho rimosso, il sito web ha funzionato bene.

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>

1
Grazie .. ha funzionato per me ma è necessario mimeMap per visualizzare video?
panky sharma,

9

Ho finalmente risolto l'errore "500 Internal server" durante la distribuzione dell'applicazione ASP.NET MVC 3.0 sull'hosting condiviso godaddy.ocm.

in qualche modo c'erano discrepanze nella versione dei file DLL a cui si fa riferimento e nella versione menzionata nel file web.config .

Ho provato tutte le opzioni menzionate nei vari forum. Nulla ha aiutato, anche se tutti hanno suggerito lo stesso tipo di correzione, ma in qualche modo non ha funzionato nel mio scenario. Finalmente dopo avermi sbattuto la testa per due giorni. Ho deciso di eliminare tutti i riferimenti ai file DLL ed eliminare web.cofig (crea una copia locale) dal progetto e ho lasciato che l'applicazione generasse l'errore, quindi aggiungevo i file DLL uno alla volta facendo una copia in local = true.

Dopo aver aggiunto tutti i file DLL, ho creato una nuova applicazione ASP.NET MVC e copiato il web.config della nuova applicazione nella mia applicazione reale. Quindi la mia attuale applicazione ora ha un nuovo web.config, quindi ho copiato la stringa di connessione e altri riferimenti dalla copia locale di web.config che ho salvato.

Ho appena compilato l'applicazione e pubblicato su una cartella locale e FTP la cartella pubblicata su goDaddy.

Ha funzionato e alla fine il mio problema è stato risolto.


Il mio errore risolto: stackoverflow.com/questions/11359957/... ha avuto anche installare Elmah
Per G

7

Nel mio caso, ho inserito un errore nel mio web.configfile. La chiave dell'applicazione in qualche modo è stata inserita nel tag <appSettings>. Ma mi chiedo perché non visualizzi un errore di configurazione. L'errore 500 è troppo generico per indagare sul problema.


Ho appena avuto lo stesso qui. web.config è stato copiato per errore in una sottodirectory e causa errori errati anche se ho impostato "mostra errori dettagliati" su true.
Avni Yayin,

7

Il mio primo tentativo di pubblicare e quindi eseguire un sito molto semplice che serve solo HTML prodotto "La pagina non può essere visualizzata perché si è verificato un errore interno del server".

Il problema: avevo il sito impostato su .NET 3.5 in Visual Studio (progetto del sito Web con il pulsante destro del mouse -> Pagine delle proprietà -> Build), ma il sito Web in Azure era configurato come .NET 4.0. Oops! L'ho cambiato in 3.5 in Azure e ha funzionato.


5

Oltre agli altri suggerimenti, assicurarsi di modificare l' existingResponseattributo del httpErrorsnodo Autoda Replaceo di rimuovere completamente quella proprietà.

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

4

IIS riporta inoltre il codice di stato 500 senza alcun suggerimento nel registro eventi se non vi sono autorizzazioni sufficienti sulla directory principale fisica (ovvero IIS_IUSRS non ha accesso).


3

Server Error 500 - Errore interno del server. Si è verificato un problema con la risorsa che stai cercando e non può essere visualizzato. Goddady. Hosting - Web - Economia - Windows Plesk

Nel mio caso, sostituisco questo codice:

<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>

Quindi cambia il framework 3.5 in framework 4. Mostra il mio errore dettagliato. Elimina il codice in:

<httpModules></httpModules>

Ha risolto il mio problema.


3

Per IIS 8 È necessario eseguire un ulteriore passaggio oltre a modificare customErrors = Off per mostrare il contenuto dell'errore.

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

Raul ha risposto alla domanda in questo link Disattiva gli errori personalizzati IIS8 di Raul


ti sei perso la chiusura / dopo "Dettagliato"
manuel-84

Questa soluzione era necessaria per IIS 10.0.14393.0.
Marcus Parsons,

2

Probabilmente il tuo file web.config è sbagliato o manca qualche tag. Ho risolto il mio problema utilizzando i tag di configurazione corretti per .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>

2

Ho capito che anche le autorizzazioni per i file e le cartelle nel tuo server sono importanti. Ho caricato i miei file da un sistema operativo Linux e di solito le autorizzazioni sono limitate per la lettura e la scrittura. Quindi, una volta caricata, l'autorizzazione è sempre la stessa del computer locale.

Ho avuto lo stesso errore e ho appena cambiato le autorizzazioni per la cartella che avevo caricato e l'errore era sparito.

Spero che aiuti qualcuno.


Questa risposta non è sostanzialmente la stessa di quella di luglio 2014 ?
Wai Ha Lee,

1

500 Errore interno Errore di
hosting di Windows

Problema di Godaddy Hosting

Ho riscontrato lo stesso problema, ma ora il mio problema è stato risolto. Usa sempre in questo hosting questo funziona.

Raccomanderò anche a tutti voi di fare qualsiasi modifica che state cercando di fare nel vostro file web.config. Fatelo uno per uno e testate lo stesso sul dominio live in modo da poter trovare il problema esatto o le funzionalità che il vostro provider di hosting non vi consente di utilizzare.

<?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>

nel mio caso l'errore è stato causato da <httpRuntime enableVersionHeader = "false" /> in web.config
b3wii il

1

Se stai utilizzando un HttpHandler personalizzato (ovvero l'implementazione IHttpModule), assicurati di ispezionare le chiamate al suo Errormetodo.

Puoi fare in modo che il tuo gestore lanci l'effettivo HttpExceptions(che ha una Messageproprietà utile ) durante il debug locale in questo modo:

    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;
    }

Assicurati anche di ispezionare le Eccezioni InnerException.


1

Si possono verificare 500 errori interni del server per diversi motivi. Il primo motivo potrebbe essere che il file web.config non è stato creato correttamente, significa che hai perso qualche tag nel file web.config. In secondo luogo, questo errore può essere dovuto a qualche problema di codice. Per verificare quale componente dell'applicazione Web sta causando questo errore, è possibile controllare le impostazioni dell'applicazione nel file web.config. Il dettaglio della risoluzione e della traccia di 500 errori interni del server con diagramma è riportato qui:


Questa registrazione del dominio è scaduta il 15/06/2018.
Patricia,

Il collegamento ora serve malware. Ho rimosso il link
Liam,

0

Assicurarsi che il proprio account utilizzi IIS 7. Per ulteriori informazioni, consultare Personalizzazione delle impostazioni IIS sul proprio account di hosting Windows. Seguire le istruzioni in Modifica della modalità pipeline sull'account di hosting IIS 7 di Windows. Seleziona Modalità pipeline integrata. Nella sezione Riferimenti del progetto, impostare Copia locale su True per i seguenti assiemi:

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

Aggiungere i seguenti assiemi al progetto e quindi impostare Copia locale su True:

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.

0

A volte, il motivo potrebbe essere uno dei tuoi assiemi .dll non registrato correttamente sul server.

Ad esempio, è possibile eseguire correttamente un'applicazione Web C # Excel sul computer locale con Office installato, ottenendo l'errore 500 sulla distribuzione del server, poiché non è installata alcuna suite Office sul server e quindi si ottiene l'errore del server.


0

Per coloro che hanno questa possibilità (VPS hosting non web hosting):

Connettiti al tuo server di hosting tramite Desktop remoto. Apri il browser Web dal desktop remoto e vedrai la descrizione dettagliata dell'errore.

Non è necessario modificare web.config o esporre alcun dettaglio a nessun altro.


0

Se si utilizza IIS 8.5, potrebbe essere necessario modificare l'impostazione ID ApplicationPool da ApplicationPoolId a NetworkService

Fai clic con il pulsante destro del mouse sul pool di applicazioni in questione, fai clic su "Impostazioni avanzate" e quindi scorri verso il basso fino a ID : sarà probabilmente impostato su ApplicationPoolIdentity . Fare clic sul pulsante (..) e selezionare invece NetworkService dall'elenco a discesa.

Assicurarsi inoltre che se si tratta di un'applicazione .NET 2.0 a cui non si fa riferimento al framework 4.0 nel pool di app.


0

Prima di modificare il web.configfile, vorrei verificare che la .NET Frameworkversione che stai utilizzando sia esattamente (intendo, 4.5! = 4.5.2) la stessa rispetto alle tue GoDaddyimpostazioni (impostazioni ASP.Net nella tua Plesk panel). Ciò dovrebbe cambiare automaticamente il tuo file web.config nel framework corretto.

Si noti inoltre che per ora (gennaio '16), GoDaddyfunziona con ASP.Net 3.5e 4.5.2. Per utilizzare 4.5.2Visual Studio deve essere 2012o più recente e, se non del 2015, è necessario scaricare e installare il pacchetto per sviluppatori .NET Framework 4.5.2.

Se il problema persiste, sì, il passaggio successivo dovrebbe consentire la segnalazione dettagliata degli errori in modo da poter eseguire il debug.


0

Recentemente ho avuto lo stesso problema, lo spazio su disco era pieno sul server. La liberazione di spazio ha risolto il problema.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.