2016-04-24 4 views
0

Wenn ein Benutzer LogsIn ich eine Sitzung erstellen, Session ["Benutzername"] und ich verwende es in meiner Masterpage. Das funktioniert gut, wenn ich an Visual Studio arbeite, aber wenn ich dies auf IIS 6.0 hosten lasse, geht meine Sitzung leer. Ich habe versucht, eine Menge und enthalten diese in web.config aber kein GlückSitzung wird null, wenn ich meine Website in IIS hosten

<sessionState mode="InProc" timeout ="60" cookieless="false"></sessionState> 

Diese Frage Duplikat sein kann, aber ich habe die bisherigen Antworten überprüft, aber mein Problem nicht gelöst wurde haben. Ich benutze Oracle 11g Datenbank und Asp.net 4.0 Framework.

Antwort

0

Das ist das Problem:

mode="InProc" 

Dies bedeutet, dass die Sitzungsdaten werden im Speicher im Prozess gehalten werden. Aber IIS kann entscheiden, den Anwendungspool jederzeit zu löschen, wenn alle Sitzungsdaten gelöscht werden. Aus diesem Grund sollten Sie diesen Sitzungsstatus in einem dedizierten Speicher speichern. Eine Möglichkeit ist, die SQL-Server speichern zu verwenden:

model="sqlserver" 

Kasse die verschiedenen sessions state stores zur Verfügung.

InProc Sitzungsstatusmodus sollte nur für Entwicklungszwecke und nie in der Produktion verwendet werden.

+0

Ich benutze Oracle 11g Datenbank nicht sqlserver. wird es für mich funktionieren, weil ich Fehler bekomme? Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden. (Anbieter: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden) ' –

+0

Sie müssen die Verbindungszeichenfolge für die SQL-Datenbank angeben, in der die Sitzungen gespeichert werden. Bitte lesen Sie den Artikel, den ich in meiner Antwort verlinkt habe, der ausführlicher erklärt, wie man SqlServer Sitzungszustandsmodus benutzt. Ich bezweifle jedoch, dass dies mit der Oracle-Datenbank funktionieren wird. Sie können auch einen State-Server-Modus in Erwägung ziehen, wenn SQL für Sie keine Option darstellt. Aber wenn der Zustandsserver erneut gestartet wird, gehen Sitzungen verloren - es ist nicht so hartnäckig wie SQL, aber viel besser als im Speicher. –

Verwandte Themen