用習慣了asp,總是把session沒有定義直接拿來使用.
今天做一個小小的東西卻出了問題,簡化地說:
1.做一個 設定session的頁面, 然後自動redirect 到顯示 session的頁面,這樣是沒有問題的;對,以前就這麼做的;
2. 今天一個老哥,他先訪問了顯示session的頁面,問題出來了,
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊追蹤資訊,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細資料。
異常詳細資料: System.NullReferenceException: 未將對象引用設定到對象的執行個體。
源錯誤:
“/WebSite1”應用程式中的伺服器錯誤。
未將對象引用設定到對象的執行個體。
行 19: // }行 20: 行 21: this.Label1.Text = Session["name"].ToString();行 22: }行 23: protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
|
源檔案: d:/My Documents/Visual Studio 2005/WebSites/WebSite1/Default2.aspx.cs 行: 21
堆疊追蹤:
[NullReferenceException: 未將對象引用設定到對象的執行個體。] Default2.Page_Load(Object sender, EventArgs e) in d:/My Documents/Visual Studio 2005/WebSites/WebSite1/Default2.aspx.cs:21 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +31 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +68 System.Web.UI.Control.OnLoad(EventArgs e) +88 System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3034
|
解決辦法: 在顯示session的語句前面加上:
if (Object.Equals(Session["name"],null) )
{
Session["name"]="沒有值";
}
OK,問題解決.