Domanda

Per semplificare le cose, abbiamo alcune pagine aspx ...

Page1.aspx - reimposta le informazioni sulla sessione.
Page2.aspx - Cerca modulo con risultati e imposta variabili di sessione.
Page3.aspx, Page4.aspx, Page5.aspx - richiedono variabili di sessione impostate su Page2.aspx

Quello che stiamo scoprendo è che mentre Page2.aspx carica e imposta le variabili Session, Page1.aspx viene chiamato e resettato la Session. Tuttavia, Page1.aspx viene visualizzato nel browser, non Page2.aspx. Siamo riusciti a scoprire che ciò accadeva solo quando abbiamo esaminato il codice e inserito i punti di interruzione negli eventi Page_Load per Page1.aspx e Page2.aspx e siamo rimasti sorpresi nel vedere Page2.aspx essere elaborato non appena Page1.aspx ha interrotto l'elaborazione sul server.

Informazioni forse utili ... usiamo una pagina Master e ci sono collegamenti a Page1.aspx nella pagina Master. A parte questo, non riesco a trovare riferimenti a Page1.aspx nella base di codice.

aggiornamento:
Potrebbe essere dovuto all'autenticazione? Sembra che quando accedo a Page2.aspx, è possibile che il server esegua nuovamente l'autenticazione su Page1.aspx? È tipico?

È stato utile?

Soluzione

Grazie per la segnalazione Andrew.

Abbiamo capito cosa stava succedendo ... Page1.aspx nell'applicazione è davvero Default.aspx. In Page2.aspx, un altro sviluppatore inserisce un tag img nella pagina per cui non è stata definita la proprietà src. Pertanto, quando Page2.aspx è stato eseguito, stava cercando un'immagine situata a livello di root del sito Web, ciò ha quindi attivato il codice su Default.aspx (Pagina1) e cancellato la sessione.

Nel complesso sembrava qualcosa del genere ...

In Page2.aspx

<img src=""> <!-- this ended up triggering a call to Default.aspx, wiping the session -->

Speriamo che aiuti qualcun altro.

Altri suggerimenti

Avvia Fiddler ed esegui l'applicazione normalmente. Ti dirà il traffico che si sta verificando e identificherà quali pagine stanno reindirizzando ad altre pagine. Una volta che conosci il percorso, puoi identificare perché esiste quel percorso studiando il codice sorgente.

È possibile che il dominio dell'applicazione si stia riciclando e, quindi, tutte le variabili di sessione vengono perse e probabilmente hai il codice che reindirizza il visitatore se mancano le variabili di sessione, giusto?

In questo caso, come soluzione rapida, è possibile utilizzare StateServer o memorizzare le variabili di sessione in SQL Server. Il dominio dell'applicazione non dovrebbe essere riciclato ogni minuto, ma potrebbe causare il comportamento che vedi se stai memorizzando le sessioni & Quot; in process & Quot ;, che è l'impostazione predefinita.

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