[英]Session clears ends when debugging ASP.NET but works fine on the dev and test server
我有一個奇怪的問題,當我在 Visual Studio 2010 中調試會話時,會話在回發后結束。
我在第一頁的會話中存儲了一個變量。 它在下一頁保持其價值,但在那之后它會丟失。 它返回一個空值。 奇怪的是,當我將確切的代碼復制到開發或測試服務器時,它工作正常......
任何想法可能會發生什么? 謝謝。
更新
代碼相當簡單。 我有一個default.aspx頁面,我在其中設置了一個會話變量:
HttpContext.Current.Session["PurchaseOID"] = purchaseOID;
當我單擊“下一步”時,Default.aspx 頁面會將其重定向到 Information.aspx 頁面。 此頁面上收集了其他用戶信息(使用 DevExpress 控件)。 當我在此頁面上單擊“下一步”時,會話變量“PurhcaseOID”在頁面加載時返回 null。
protected void Page_Load(object sender, EventArgs e)
{
if(HttpContext.Current.Session["PurchaseOID"] == null){
throw new Exception("error!");
}
}
奇怪的是,第一次加載頁面時會保留會話。 但是在回發時,它失去了它的變量。 此外,這是剛剛開始發生的事情。 我已經在這個代碼上工作了一個月左右,它運行良好。 當我將此確切代碼部署到我們的開發或測試服務器時,它工作正常。
我正在 Cassini 中調試它。 幫助將不勝感激,謝謝!
沙扎德·喬杜里
測試時是否禁用了 cookie? 我問是因為會話 ID 存儲在 cookie 中,除非您使用無 cookie 會話(罕見)。 因此,如果在您的測試環境中,您在瀏覽器中關閉了 cookie,那么它將無法獲取會話值。 我不相信它在存儲它們時會引發任何錯誤。
我想通了,這是一個愚蠢的錯誤。 更改發生在 Global.asax Application_Error 方法中。 出於某種原因,當我在那里放置斷點時,它不會命中。
本地調試時,只需在 web.config 中設置
<sessionState cookieless="true" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.