2013-04-18 6 views
8

Nel nostro sito Web ASP.NET una delle pagine contiene alcune schede. Ogni scheda rappresenta contenuti diversi e lo spostamento da una scheda all'altra ricarica l'intera pagina. Se sono attualmente in una delle schede e restano inattivi lì per circa un minuto o più e quindi si passa a un'altra scheda, viene visualizzata solo una schermata bianca vuota. (senza informazioni sul codice sorgente della pagina per quello nel browser).Problema schermo bianco, se un utente rimane inattivo in una pagina asp.net

Purtroppo questo stesso problema non è affatto riproducibile per lo stesso sito Web in un ambiente di test inferiore. Il problema si verifica solo nella versione di produzione del sito web.

Esiste un'impostazione IIS o un'impostazione web.config che dovrei modificare per risolvere questo problema. Credo che il codice sorgente della pagina Web interessata non sarebbe un motivo.

+4

_ "Esiste un'impostazione IIS o un'impostazione web.config che dovrei modificare per risolvere questo problema." _ - Non penso ci sia un _ "mostra la pagina bianca dopo che l'utente è inattivo per un minuto" _ impostazione. Dovrai fare l'analisi di questo errore, non c'è niente che chiunque possa vedere da qui. Abilita la registrazione e la traccia più dettagliate, dai un'occhiata a Fiddler, usa un browser diverso, prova a individuare _who_ sta mostrando una pagina bianca e _why_. – CodeCaster

+2

Quale modalità di autenticazione si utilizza? Utilizzi lo stato di sessione per la memorizzazione di informazioni utente autenticate? Esamina il modo in cui la richiesta è stata elaborata dal server quando la scheda è stata attivata negli strumenti di sviluppo del browser o in Fiddler. –

+0

Esiste un processo a lungo eseguito nella tua pagina? Ti piace animazione flash, feed RSS, Javascript o AJAX? Puoi verificarlo usando httpwatch o httpfox. Dovresti anche controllare l'utilizzo della CPU del tuo server usando perfmon. – Pinoy2015

risposta

5

Ciò è probabilmente dovuto al fatto che il timeout della sessione ha raggiunto il limite che termina la sessione.

Avete tre possibili soluzioni in questo caso:

First

Si può provare a modificare il file web.config situato nella directory radice della vostra applicazione per estendere il timeout della sessione. Provare qualcosa di simile:

<sessionState mode="StateServer" timeout="500"> 

</sessionState> 

Secondo MSDN è possibile impostare fino a timeout525,601 minuti (1 anno).

Seconda

Se non funziona e si ha accesso, si può provare a modificare il timeout su IIS:

Aprire l'IIS, fare clic sul Pool di applicazioni, selezionare l'applicazione pool per la tua applicazione.

Fare clic destro su quello, selezionare Proprietà.

Nella scheda Prestazioni, impostare il timeout di inattività come minuti desiderati per "processi di arresto del lavoro dopo essere inattivo per ..... minuti".

IMPORTANTE: Oltre a questo è necessario impostare il timeout in web.config come detto sopra.

Terzo

È possibile creare una funzione ajax da eseguire in background, impedendo la sessione dalla scadenza:

function keepSessionAlive(mod) { 
mod.open("GET", "blank.html", true);    
mod.onreadystatechange = function() { 
    if (mod.readyState == 4) {   
     document.getElementById("#blankDiv").innerHTML = mod.responseText; 
    } 
}; 
mod.send(null) 
} 
setInterval('keepSessionAlive()', 100000); 

Questo è tutto. Spero che sia d'aiuto.

1

Usi un modulo http personalizzato? Possiamo dare un'occhiata alla pagina di aspx e code? È successo a me quando ho usato elmah ma in uno scenario completamente diverso.

Altro potrebbe essere dovuto alla cosa della sessione che altri hanno sottolineato. Spero possa aiutare.

1

Aprirei gli strumenti di chome dev o firebug se in firefox. Se in firebug, andrei a guardare le schede di rete e console e vedere cosa sta realmente accadendo dal punto di vista della rete. Dovrebbe essere facile guardare il traffico in dev e confrontare con la produzione. Immagino che non siano la stessa cosa e ti indirizzerebbe all'istante nella giusta direzione.

Fiddler è anche un'opzione se si desidera osservare il traffico come se fossi un intermediario.

Problemi correlati