Ich habe eine MVC3-Anwendung auf .net4, deren Sitzung in der Entwicklungsumgebung arbeitet, aber nicht in der Produktion.
In der Produktion habe ich die SessionID protokolliert und es ist das selbe in dem Moment, in dem ich Set und Get von der Session bekomme.
Wenn ich versuche, die Sitzung zu bekommen, bekomme ich Null Exception
.
So greife ich auf die Sitzung zu:
%Vor%Was mich beunruhigt, ist, dass sich das Verhalten in der Produktion von der Entwicklung unterscheidet, obwohl die web.config dieselbe ist.
Link: HttpContext.Current. Die Sitzung ist null, wenn Anfragen weitergeleitet werden
Verstanden. Ganz dumm, eigentlich. Es funktionierte, nachdem ich & amp; hinzugefügt das SessionStateModule wie folgt:
%Vor% Das einfache Hinzufügen funktioniert nicht, da "Session" bereits in machine.config
definiert sein sollte.
Nun, ich frage mich, ob das üblich ist. Es scheint sicherlich nicht so, da es so grob scheint ...
Link: HttpContext.Current.Session null-Objekt
sessionKey ändert sich möglicherweise, Sie müssen wahrscheinlich nur Folgendes tun:
%Vor%Oder die Sitzung läuft möglicherweise ab, überprüfen Sie die Zeitüberschreitung:
Oder Sie setzen den Sitzungswert von woanders aus, normalerweise kontrolliere ich den Zugriff auf das Session / Context-Objekt über eine Eigenschaft
%Vor%Eine andere mögliche Ursache / Lösung ist, dass der IE keine Cookies speichert, wenn der Domainname eine Unterstreichung hat (da streng genommen Domänennamen keine Unterstriche haben können, so werden Sie wahrscheinlich nur in der Entwicklung darauf stoßen), z. %Code%. Chrome oder Firefox sollte in diesem Szenario funktionieren, und wenn Sie den verwendeten Domain-Namen ändern, wird kein Unterstrich-Problem gelöst.
Hinweis:
Tags und Links asp.net-mvc-3 asp.net session