2011-01-03 2 views
4

Ich bin ein seltsames Problem mit dem die Sitzung nach einem Postback endet, wenn ich es debuggen in Visual Studio 2010.Session löscht endet, wenn ASP.NET Debuggen funktioniert aber einwandfrei auf dem Entwickler und Test-Server

ich speichere Variable in einer Sitzung auf der ersten Seite. Es behält seinen Wert auf der nächsten Seite, aber danach geht es verloren. Es gibt einen Nullwert zurück. Die seltsame Sache ist, wenn ich den genauen Code auf den Dev- oder Test-Server kopiere, funktioniert es gut ...

Irgendwelche Ideen was könnte passieren? Vielen Dank.

UPDATE
Der Code ist ziemlich einfach. Ich habe eine default.aspx Seite, wo ich eine Session-Variable bin Einstellung:

HttpContext.Current.Session["PurchaseOID"] = purchaseOID; 

Wenn ich auf ‚Weiter‘ klicken Sie auf die Seite Default.aspx leitet es zu einer Information.aspx Seite. Auf dieser Seite werden zusätzliche Benutzerinformationen gesammelt (mit DevExpress-Steuerelementen). Wenn ich auf dieser Seite auf "Weiter" klicke, gibt die Sitzungsvariable "PurhcaseOID" beim Laden der Seite null aus.

protected void Page_Load(object sender, EventArgs e) 
{ 
     if(HttpContext.Current.Session["PurchaseOID"] == null){ 
     throw new Exception("error!"); 
     } 
} 

Was seltsam ist, ist die Sitzung wird beibehalten, wenn die Seite zum ersten Mal geladen wird. Beim Postback verliert es jedoch seine Variablen. Auch das ist etwas, das JUST begann. Ich habe ungefähr einen Monat lang an diesem Code gearbeitet, und es hat gut funktioniert. Wenn ich diesen genauen Code auf unserem Entwickler- oder Testserver deploye, funktioniert es gut.

Ich debugge das in Cassini. Hilfe wäre sehr dankbar, danke!

Shahzad Chaudhary

+3

Buchungscode wäre hilfreich. –

+0

@Dan möchte dies als zweites bestätigen. Meine Antwort unten ist wirklich eine extreme Aufnahme im Dunkeln, basierend auf einem ähnlichen Moment, den ich hatte. – Adrian

+0

Debuggen Sie auf IIS oder Cassini? –

Antwort

0

Ich fand es heraus, es war ein dummer Fehler. Die Änderung wurde in der Global.asax Application_Error-Methode ausgeführt. Aus irgendeinem Grund, wenn ich einen Haltepunkt dort setzte, würde es nicht schlagen.

1

Wenn Sie testen Sie haben Cookies deaktiviert? Ich frage, weil die Sitzungs-ID in einem Cookie gespeichert wird, es sei denn, Sie verwenden cookieless Sitzungen (selten). Wenn in Ihrer Testumgebung Cookies in Ihrem Browser deaktiviert sind, können die Sitzungswerte nicht abgerufen werden. Ich glaube nicht, dass es einen Fehler beim Speichern gibt.

+1

Ich wollte nur klarstellen, dass niemand in der Welt jemals doof genug wäre, in ihrer web.config zu setzen und dann über http zu debuggen. – mwardm

Verwandte Themen