[ASP.NET MVC] - Session wird geschlossen trotz AJAX

Ruheliebhaber

Captain
Registriert
Feb. 2010
Beiträge
3.410
Hallo,

ich hoffe, jemand kann mir helfen.

Ich entwickle mit ASP.NET MVC 3.0 eine RIA-Anwendung. Als Webserver kommt der IIS 7.0 zum Einsatz.

Bestimmte Seitenbereiche werden mit Hilfe von JQuery und der Post-Funktion regelmäßig geupdatet. Also etwa so:

Code:
function Update()
{
   var request = { "EinPaarDaten": "abcd" };
   $.post("home/update", request, function (data) { HandleSuccess(data); });
   window.setTimeout("Update()", 10000);
}

Das funktioniert wunderbar. Nur leider läuft die Session nach 20 Minuten ab. Das heißt, mein Session State ist weg und die Anweisung "Session.IsNewSession" gibt "true" zurück. Interessanterweise ist die Session ID aber unverändert.

Ich verstehe das nicht. Das Internet ist voll von Blogeinträgen und Tutorials, daß man auf diese Weise eine "endlose" Session erzeugt.

Mittlerweile habe ich die Konfiguration des IIS im Verdacht. Kann es sein, daß es eine Einstellung gibt, die dem IIS ermöglicht, zwischen einem Request durch einen Menschen und einer AJAX-Abfrage zu unterscheiden?

Vielen Dank für Eure Hilfe.
 
Wird deine Update funktion im Controller auch wirklich aufgerufen? Im Internet Explorer hatten wir die haarsträubendsten caching Probleme. Der IE hat jeden Ajax Request gecached, egal was wir auf MVC Seite gemacht haben (CacheControl auf "no-cache" und etliche andere Sachen). Die Controller Funktionen wurden nur beim ersten Request aufgerufen.

Die einzige Lösung die wirklich funktioniert hat war noch die aktuelle Uhrzeit in Sekunden als Paremeter in deinem Ajax Request mitzugeben.
JQuery kann man so konfigurieren damit das alles automatische passiert:
$.ajaxSetup({cache: false});

Ansonsten machen wir das genau so wie Du um die Session am leben zu erhalten und hatten nie Probleme damit, außer eben die caching Geschichte im IE.
 
Zurück
Oben