程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net Application_AcquireRequestState事件,導致Ajax客戶端不能加載

asp.net Application_AcquireRequestState事件,導致Ajax客戶端不能加載

編輯:ASP.NET基礎
開發環境IIS7下一切正常,但是部署到IIS6服務器以後, 每次刷新頁面總出現Ajax客戶端不能加載的問題.
復制代碼 代碼如下:
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
string oldToken = Session["token"].ToString();
}

MSDN上說: Application_AcquireRequestState, 當ASP.NET獲取當前請求所關聯的當前狀態(如Session)時執行.
但是, 實際情況是, 我們使用AJAX控件時, 一個頁面會多次觸發這個事件, 並且Session會出現為NULL的情況.
原因是一些腳本和圖片是通過webresource.axd handler解析的, 但一個頁面使用多個腳本和圖片時, 頁面就會多次請求,
也就多次觸發這個事件了.
所以, 在事件中訪問Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請求的類型.
復制代碼 代碼如下:
if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx"))
return;

憋屈了兩天, 釋放了, 標記一下.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved