2013-03-20 15 views
8

Abbiamo migrato un'applicazione scritta in ASP classico ai siti Web di Azure (condivisa) e alcune pagine danno semplicemente l'errore "La pagina non può essere visualizzata perché si è verificato un errore interno del server." senza alcun dettaglio Queste pagine funzionano correttamente con IIS 7 o IIS Express. Come mai sul sito Web di Azure non lo fanno.Sito Web ASP classico su Azure "Impossibile visualizzare la pagina perché si è verificato un errore interno del server."

Come suggerito in alcuni altri post ho configurato il seguente sul sito web su Azure:

1) Registrazione Web Server - ON
2) dettagliate Messaggi di errore - ON
3) web.config - customErrors modalità a spento.

<customErrors mode="Off"/> 
<compilation debug="true" targetFramework="4.0"> 

Ancora i messaggi di log non forniscono altri dettagli ciò che è sbagliato e semplicemente dà le seguenti informazioni:

errore Informazioni dettagliate:

modulo IsapiModule
Notifica ExecuteRequestHandler
Handler ASPClassic
Codice errore 0x00000000

Qualsiasi aiuto è apprezzato come eseguire il debug dei problemi classici di asp pagine sui siti Web di Azure. Grazie.

+0

È possibile configurare Windows Azure Diagnostics o utilizzare il desktop remoto e accedere all'IP interno in base alle soluzioni a cui si fa riferimento in questo precedente articolo SO: http://stackoverflow.com/questions/6324463/how-to-debug-azure -500-internal-server-error – AardVark71

+0

per il mio risolvere il probleme [questa risposta] (http://stackoverflow.com/a/43521722/5996253) spero di aiutare –

risposta

2
  1. È problema potrebbe essere sul lato del browser: fare in modo che l'IE impostazione di "mostrare i messaggi amichevoli" è disattivata
    enter image description here

  2. Inoltre, sul lato server, è necessario avere una certa regolazione per consentire i messaggi di errore da inviare al cliente (mi dispiace, ho solo l'accesso al sapore di IIS di tale impostazione ... non è sicuro che cosa è in azzurro):
    enter image description here

+1

Il sito web è su "Siti Web di Azure" e non mostra un'opzione per "Invia errori al browser". Inoltre con "siti Web di Azure" non sembra esserci alcun desktop remoto sul server. Quindi non sono sicuro di come impostare gli errori di invio al browser. Ho provato quanto segue senza problemi '' nella sezione web.config system.webserver – VVee

+3

Prova questo: aggiungi web.config alla sezione '' 'httpErrors existingResponse = "PassThrough" /> '. Vorrei anche provare una pagina personalizzata di 500.100 - devono essere permessi! –

+0

Grazie, G. Stoynev! – VVee

11

Grazie G. Stoynev! Ha funzionato dopo aver aggiunto la pagina di errore personalizzata asp! Ho usato il codice dal seguente link per creare errore personalizzato ASP pagina

http://support.microsoft.com/kb/224070

anche il seguente collegamento come pure aiutato http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/

Ora la sezione system.webServer nel mio web.config appare come segue:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    <httpErrors> 
    <remove statusCode="500" subStatusCode="100" /> 
    <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/errors.asp" responseMode="ExecuteURL" /> 
    </httpErrors> 
    </system.webServer> 
+0

Grazie per aver condiviso questo –

7

One (dispari) cosa da provare, che ha funzionato per me:

prova FTP'ing sul vostro sito web Azure e rinominare i web.config a qualcosa di completamente diverso.

Ho rinominato il mio in web.config2 - il messaggio di errore Azure "The page cannot be displayed because an internal server error has occurred." è scomparso e la mia applicazione ASP.Net è scoppiata di nuovo in vita.

Da lì, ho ricreato il web.config da zero, copiando pezzi di esso dalla mia versione originale, pezzo per pezzo (per vedere che cosa stava causando il problema)

Sì, lo so ...è un suggerimento stupido, ma Azure non mi dava alcun indizio su cosa stesse causando l'errore, anche con la registrazione attivata, e questo mi ha salvato la sanità mentale !!

+1

Bene, grazie per questo suggerimento. L'ho fatto funzionare e in seguito diagnosticato che il problema era con lo stesso file :) +1 Grazie. –

+0

In secondo luogo, ho riscontrato un problema simile oggi e si è scoperto che qualcosa o qualcuno aveva modificato il web.config, aggiungendo un'estensione di tipo MIME non valida che causava il fallimento di tutte le richieste di contenuto statico. Semplice da correggere, ma tutti radicati in un file web.config difettoso per il sito. –

0

Ho risolto il problema attivando il registro dell'applicazione in Registrazione => Registro di diagnostica nella configurazione dell'app Web di Azure.

È quindi possibile visualizzare l'errore nel riquadro "Flusso di log" e correggerlo.

Nel mio caso l'errore in cui le seguenti due righe nella web.config:

<add name="ExtensionlessUrlHandler-Integrated-4.0" 
path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" 
preCondition="integratedMode,runtimeVersionv4.0"/> 
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/> 

Li ho tolti e ha funzionato di nuovo.

0

Se si sta tentando di configurare il sito in cui non si ha accesso a IIS, ad esempio un'app Web di Azure, è possibile configurare le impostazioni ASP classico in Web.Config.

Sotto

<system.webServer> 

È possibile inserire un elemento

<asp> 

che configura varie cose con il modo classico opera.

La proprietà, che stava interessando il mio sito era

**appAllowDebugging="true"** 

Mentre questa proprietà è bene e dandy quando si sta sviluppando con Visual Studio e hanno un debugger Just-In-Time installato, scombina l'errore maneggevolezza per Asp Classic.

BTW, mi ha preso per sempre per capire cosa ho cambiato.