2016-03-19 6 views
1

Sitzungsvariablen können nicht funktionieren, ich habe alle Lösungen ausprobiert, die ich online finden konnte.IIS8 MVC ASP.NET-Sitzung funktioniert nicht. Null-Objektreferenzfehler erhalten

Auf Seite 1, rufe ich die folgenden in der C# Modell

HttpContext.Current.Session["lol1"] = "123"; 

Später ich einen Ajax-Aufruf verwenden diese Session-Variable für mich in der C# Modell zurückzukehren,

return HttpContext.Current.Session["lol1"].ToString(); 

In Javascript, ich nehme es in der Ajax-Erfolgsfunktion auf und lege es in eine Alarmbox mit Alarm (e);

Ich bekomme einen Null-Objekt Referenzfehler. Scheint so, als ob meine Variable nicht in die Sitzung gespeichert wurde. Dies alles funktioniert gut auf localhost über Debug, einschließlich der Warnung.

Dinge, die ich versucht habe (zur Zeit eingestellt):

-DefaultAppPool Einstellung Maximalarbeitsprozesse: 1

-iis Manager-> ASP-> Dienste-> Session Eigenschaften-> aktivieren Staat Session: true

-iis manager-> Session State-> Im Prozess

-In meine Lösung web.config:

<system.web> 
    <sessionState mode="InProc" timeout="25"></sessionState> 
</system.web> 

<system.webServer> 
    <modules> 
     <remove name="Session" /> 
     <add name="Session" type="System.Web.SessionState.SessionStateModule"/> 
    </modules> 
</system.webServer> 

Antwort

0

Versuchen Sie, SessionStateBehavior in Ihrem Controller zu setzen. Zum Beispiel:

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)] 

Es wird empfohlen, ReadOnly zu verwenden, wenn Sie nur von Session lesen müssen und nicht zu schreiben, um es eine Blockade zu vermeiden.

Link zu Microsofts SessionStateBehavior enumeration.

(für weitere Informationen auf ASP.NET die Blockierung, wenn Controller verwenden beschreibbare Sitzungen siehe diesen Link: Does Session State read/write everything when you access with DynamoDB)

hoffe, das hilft!

Grüße,

Ross

+0

Leider muss ich es von der Steuerung zu schreiben. Das ist, wo die Daten von in erster Stelle kommen werden – Totoro

+0

Probieren Sie Default statt ReadOnly dann. –

+0

Setzen Sie [SessionState (System.Web.SessionState.SessionStateBehavior.Default)] in meinem Controller. Habe es nicht repariert. Danke für die Antwort. – Totoro

Verwandte Themen