簡體   English   中英

ASP.NET C# Global.asax 中的 Application_Error 無法訪問 Session 變量

[英]ASP.NET C# Application_Error in Global.asax cannot access Session variables

我有我的錯誤處理設置來跟蹤所有異常並將我們需要的信息寫入數據庫和 email 的開發人員需要了解錯誤以修復它。 我遇到的問題是在頁面完全加載之前發生錯誤。 在這種情況下,我想跟蹤的 session 變量在 Application_Error 中不可用。 所以我做了以下事情,這樣我的錯誤處理就不會出錯,但必須有更好的方法。 此外,如果頁面加載並且在提交表單時發生錯誤,則 session 變量可用。

try
{
    user_name = System.Web.HttpContext.Current.Session["User_Name"].ToString();
    user_number = System.Convert.ToInt32(System.Web.HttpContext.Current.Session["User_Number"].ToString());
}
catch (Exception ex)
{
    user_number = 0; 
    user_name = "N/A";     
}   

任何幫助是極大的贊賞。 謝謝!

你的所作所為並沒有錯,盡管

if ( null != System.Web.HttpContext.Current.Session )

將比您的 try-catch 塊更“外科手術”。

Session 直到 AcquireRequestState 事件才被初始化,因此在此之前發生的任何錯誤都不會有 session 變量可用。

這是你需要做的。 用戶可以通過書簽或知道 URL 到任何頁面。 因此,用戶可能會在設置任何值之前檢索該頁面。 所以這就是您需要做的以確保代碼不會中斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM