2012-08-30 5 views
6

Ich habe eine MCV3-Anwendung in godaddy dient und die Sitzung ist ziemlich instabil.Warum habe ich instabile Sitzung in einer MVC3-Anwendung mit godaddy Servern

Wenn ich mich anmelde funktioniert es gut, aber während der Navigation in der Anwendung es mich abmeldet, und drücken Aktualisieren oder Navigieren ein wenig mehr in der Anwendung in mich einfach auf (wie ohne Anmeldeinformationen oder irgendetwas). Auf meinen Remote-Test-Servern und lokalen in Arbeit gut.

Antwort

11

Dies ist wahrscheinlich kein Session-Problem, sondern ein Authentifizierungs-Cookie/Ticket-Problem. GoDaddy (am wahrscheinlichsten) hat ihre Server ausgeglichen. Das bedeutet, dass Ihre Anwendung tatsächlich auf mehreren Servern gleichzeitig vorhanden ist.

Wenn Sie das Attribut <machineKey> in Ihrer web.config nicht richtig definieren, erstellt IIS einen Maschinenschlüssel für Sie. Jeder Server, auf dem die Anwendung ausgeführt wird, erstellt ihren eigenen Computerschlüssel, wenn dieser nicht von Ihnen definiert wird. Daher kann ein Server Ihr Authentifizierungsticket entschlüsseln und lesen, während die nächste Anfrage an einen anderen Server gesendet wird, der das Authentifizierungsticket nicht entschlüsseln kann, weil es mit einem anderen Schlüssel verschlüsselt wurde und dieser Server denkt, dass Sie nicht angemeldet sind.

Um dieses Problem zu beheben, öffnen Sie die Datei web.config und definieren Sie das Attribut <machineKey> und stellen Sie es erneut bereit. Sobald Sie sich mit der neu bereitgestellten Anwendung anmelden, sollte dieses Problem verschwinden.

Forms authentication and Machine Key information on MSDN

Machine Key Generator (Wahrscheinlich jeder hier gehen sollte die .NET 2.0-Version verwenden, die generiert wird)

+1

Ich kann mich nicht ausdrücken, wie dankbar ich bin zu Ihnen jetzt. Vielen Dank. Das war's. – memeonline

+1

Episch. Das ist nicht nur richtig, sondern es wird auch perfekt und detailliert erklärt. Sehr nett, das hat mir auch geholfen. –