開發環境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;
憋屈了兩天, 釋放了, 標記一下.