2012-08-30 10 views
6

Ho un'applicazione MCV3 in serve di Godaddy e la sessione è abbastanza instabile.Perché ho una sessione instabile in un'applicazione MVC3 con server Godaddy

quando faccio il login funziona benissimo, ma durante la navigazione nella domanda che mi si disconnette, e colpire l'aggiornamento o la navigazione un po 'più all'interno dell'applicazione nei registri me proprio come quella (senza chiedere credenziali o nulla). Sul mio server di test remoto e locale funziona bene.

risposta

11

Questo probabilmente non è un problema di sessione, ma piuttosto un problema di cookie/ticket di autenticazione. GoDaddy (molto probabilmente) ha il bilanciamento dei loro server. Significa che la tua applicazione esiste effettivamente su più di un server alla volta.

Nel proprio web.config, se non si definisce correttamente l'attributo <machineKey>, IIS crea una chiave computerizzata per l'utente. Ogni server che esegue l'applicazione creerà la propria chiave macchina se non è definita dall'utente. Di conseguenza, un server è in grado di decodificare e leggere il ticket di autenticazione, mentre la richiesta successiva passa a un altro server che non può decrittografare il ticket di autenticazione perché è stato crittografato con una chiave diversa e questo server pensa che non sia stato effettuato il login.

Per risolvere questo problema, aprire il file web.config e definire l'attributo <machineKey> e ridistribuire. Una volta effettuato il login con l'applicazione appena implementata, dovresti vedere questo problema scomparire.

Forms authentication and Machine Key information on MSDN

Machine Key Generator (Molto probabilmente, tutti andare qui dovrebbe utilizzare la versione di .NET 2.0 che viene generato)

+1

non posso esprimermi la mia gratitudine ‘Am verso di voi in questo momento. Grazie. Era questo. – memeonline

+1

Epico. Non solo è corretto, ma è spiegato perfettamente e in dettaglio. Molto bello, anche questo mi ha aiutato. –