IIS7 sta gettando un errore 500 in modo intermittente. Qualcuno può aiutarmi a diagnosticarlo?

StackOverflow https://stackoverflow.com/questions/1240401

Domanda

Ci scusiamo per il titolo vago, come io davvero non riesco a spiegare questo problema succintamente.

Fondamentalmente ho Windows Server 2008 x64, IIS7, ASP.NET 2.05, e ho un sito in esecuzione in un Classic AppPool (e no, non può essere eseguito in Integrated).

Quando si cerca di caricare un file * .aspx per la prima volta (vale a dire dopo l'installazione del sito, riavviando il server, ecc) ottengo questo errore:

  

Errore HTTP 500.0 - Internal Server Error
  La pagina non può essere visualizzata perché si è verificato un errore interno del server.
  Modulo: IsapiModule
  Notifica: ExecuteRequestHandler
  Handler: PageHandlerFactory-ISAPI-2,0-64
  Codice di errore: 0x800710dd
  Metodo di accesso: Anonimo
  Accesso utente: Anonimo

Il gestore è l'impostazione predefinita IIS7 uno:

<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />


Ho anche provato ad aggiungere nel mio gestore per aspx che si presentava così:

<add name="aspx" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />

L'unica cosa che ha fatto è stato cambiare la parte Handler della notifica di errore di dire IsapiModule.

La cosa strana è che questo errore si verifica solo la prima volta (o quando il server è rimasto inattivo per ore). Appena ho visto questo errore, se mi aggiorna la pagina è di nuovo tutto bene e dandy.

Ho anche provato a cancellare il file web.config e che ha fatto assolutamente nulla.

Non riesco a trovare una sola risposta a questo problema su internet.

Modifica Ho attivato richieste non riuscite monitoraggio e questo è ciò che si vede:

  

MODULE_SET_RESPONSE_ERROR_STATUS   Attenzione ModuleName = "IsapiModule", Notifica = "EXECUTE_REQUEST_HANDLER", HttpStatus = "500", HttpReason = "Internal Server Error", HttpSubStatus = "0", ErrorCode = "L'identificatore operazione non è valida.    (0x800710dd)", ConfigExceptionInfo = ""

E proprio prima che l'errore si vede:

  

NOTIFY_MODULE_START ModuleName = "IsapiModule", Notifica = "EXECUTE_REQUEST_HANDLER", fIsPostNotification = "false", fIsCompletion = "false"

Ora, quando mi confronto ad un corsa di successo la differenza è che l'errore produce MODULE_SET_REPONSE_ERROR_STATUS mentre la corsa di successo non lo fa (e poi va a produrre l'output HTML corretto).

Modifica : ho preso una semplice applicazione e cercato di ottenere che la corsa e ho ricevuto lo stesso errore. Ma quando l'AppPool era in modalità integrata ha funzionato bene ! Purtroppo non posso migrare la nostra applicazione per integrato per ragioni che non è possibile specificare, ma ho ristretto la scelta per la piscina app. Anche io non devo riavviare il server a Repro l'errore, invece di riciclare il pool di app farà.

Sommario:
- Come accennato qui sotto non c'è niente nei registri eventi per indicare il fallimento. Ho spulciato tutti i registri in Visualizzatore eventi

È stato utile?

Soluzione 5

Beh, io non so che cosa stava causando questo, ma una nuova installazione di VM stavo usando riparato. Evviva!

Altri suggerimenti

La cosa migliore da fare è abilitare traccia richieste non riuscite nella sezione IIS del sito web. È quindi possibile attivare alcuni filtri che vi danno informazioni molto più dettagliate.

È possibile farlo attraverso la Gestione IIS. Fare clic sul proprio sito web, quindi nella sezione IIS della Visualizzazione funzionalità fare doppio clic su "Impossibile Regole traccia richieste".

E 'più probabile non è già abilitato, quindi dalla colonna più a destra selezionare "Modifica sito Tracing". Controllare la casella "Attiva" e prendere nota della directory.

È quindi possibile aggiungere una regola in quello schermo o andare alla vostra applicazione e aprire il "Richiesta non riuscita norme sulla rintracciabilità" caratteristica di IIS da lì.

Dalla colonna più a destra di nuovo, fai clic su "Aggiungi ..." Poi vai con la procedura guidata e impostare la registrazione.

Caricare la pagina che sta lanciando nuovamente l'errore. Vai alla cartella di registrazione e fare doppio clic sul file XML. C'è un XSL in quella directory. Non bombardare esso, perchè una volta che è andato non otterrà ricreato. :. S Il XML trasformato vi mostrerà più informazioni di quanto tu possa sperare

Ho appena questa sera usato quella di scoprire una pagina di errore personalizzata che ho configurato stava usando ~ / invece di "/", causando IIS a morire.

suona come qualcosa durante l'avvio del pool di app. Ma dovrebbe essere la registrazione l'errore effettivo nel visualizzatore eventi. Oppure si potrebbe trasformare CustomErrors off per eseguire il debug. Il fatto è che hai bisogno di vedere l'errore effettivo per capire cosa sta succedendo.

Quando l'applicazione ASP.NET inizia il caricamento, si può avere qualche codice che potrebbe richiedere troppo tempo per l'esecuzione, probabilmente troppo grande variabili o le risorse di applicazione di inizializzazione.

Il modo migliore è quello di impostare una sorta di monitor di ping, molti ISP forniscono il ping monitor in grado di monitorare il vostro URL HTML intervalli regolari, che possono aiutare a mantenere l'applicazione di tutti i tempi in vita !!

Prova a guardare in procedure di inizializzazione della tua asp.net app, si consiglia di aumentare alcuni valori di timeout !!

Hai un gestore di eccezione non gestita nel codice ASPX (si parla di globale Application_Error)?

Si dovrebbe essere in grado di catturare l'eccezione e il login, se è venuta dal codice ASPX (che è del tutto possibile).

Ho visto errori sporadici di simile prima, non riesco proprio a ricordare la causa di fondo in questo momento.

Procedura: gestire gli errori a livello di applicazione

È necessario aggiungere questo script sul vostro web.config:

<system.webServer>
    <handlers>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </handlers>

Spero che questo aiuto! Cheer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top