Frage

Wir versuchen, den Sitzungsstatus erhalten arbeiten, um die folgenden web.config Zeile:

<sessionState 
    mode="SQLServer" 
    stateConnectionString="tcpip=127.0.0.1:42424" 
    sqlConnectionString="Data Source=dbServer;User ID=stateUser;Password='thepassword'" 
    cookieless="false" 
    timeout="20"/>

Auf DBServer haben wir den folgenden Befehl ausführen, um die ASPState db einzurichten:

aspnet_regsql.exe -S localhost-E -ssadd -sstype p

Auf dem Web-Server haben wir den ASP.Net Staatsdienst jedoch gestartet, zeigen keine Aufzeichnungen bis in Tabellen ASPStateTempApplications oder ASPStateTempSessions, und es scheint sehr ähnlich wie Sitzung noch in Prozess gespeichert werden.

Was ist los? Sollte der Staat-Dienst auf dem DB-Server ausgeführt werden? Funktioniert es mit IIS installiert werden, da es auf dieser Maschine nicht verfügbar ist, trotz .net 3.5.1 installiert.

Die IIS-Protokolle zeigen keinen Hinweis des Scheiterns. Was ist los?

War es hilfreich?

Lösung

Als erstes müssen Sie nicht den Statusdienst starten, um SQL Server-Sitzungsstatus zu verwenden. Vergessen Sie den ASP.NET-Statusdienst.

Sind Sie sicher, dass Ihre Website ein Session-Variable schafft? Nur weil Sie diese Änderungen in Ihrer web.config setzen, wenn Sie nie Session-Variablen verwenden, wird es nicht verwendet werden.

Andere Tipps

Wenn es zitiert wirklich um das Passwort, versuchen, sie zu entfernen:

sqlConnectionString="Data Source=dbServer;User ID=stateUser;Password=thepassword"

und entfernen Sie die folgende Zeile ein, es keine Funktion für SQL-Sitzung Speicher hat:

stateConnectionString="tcpip=127.0.0.1:42424" 

Und man könnte genauso gut den Zustand Dienst beenden; es gebraucht für Out-of-Process-Sitzungszustand nicht für SQL Server-Sitzungsstatus.

Auch SQL Server-Sitzungsstatus erfordert, dass Sie InstallSqlState.sql auf der Datenbank ausgeführt wird, nicht aspnet_regsql.exe. Es sollte eine neue ASPState Datenbank erstellen.

Wie wäre es ein kleines Httpmodule zu schreiben? Man kann es an seinen Platz für den Zeitraum fallen, wenn Sie Benutzer müssen auf die neue Code-Basis zu überführen. Das Modul könnte einige Arbeit auf jeder Seite Anfrage tut der Sitzung des Benutzers zu überprüfen und entscheiden, ob es aufgegeben werden muss. Vielleicht speichern Sie eine Anwendungsversion Zeichenfolge in der Sitzung des Benutzers, wenn die Sitzung erstellt wird und vergleichen Sie die aktuelle App-Version String dagegen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top