asp.net Application_AcquireRequestState事件,導致Ajax客戶端不能加載
更新時間:2010年03月04日 19:15:03 作者:
項目中使用Application_AcquireRequestState事件,來做一些用戶信息的驗證工作.
開發(fā)環(huán)境IIS7下一切正常,但是部署到IIS6服務(wù)器以后, 每次刷新頁面總出現(xiàn)Ajax客戶端不能加載的問題.
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
string oldToken = Session["token"].ToString();
}
MSDN上說: Application_AcquireRequestState, 當ASP.NET獲取當前請求所關(guān)聯(lián)的當前狀態(tài)(如Session)時執(zhí)行.
但是, 實際情況是, 我們使用AJAX控件時, 一個頁面會多次觸發(fā)這個事件, 并且Session會出現(xiàn)為NULL的情況.
原因是一些腳本和圖片是通過webresource.axd handler解析的, 但一個頁面使用多個腳本和圖片時, 頁面就會多次請求,
也就多次觸發(fā)這個事件了.
所以, 在事件中訪問Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請求的類型.
if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx"))
return;
憋屈了兩天, 釋放了, 標記一下.
復制代碼 代碼如下:
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
string oldToken = Session["token"].ToString();
}
MSDN上說: Application_AcquireRequestState, 當ASP.NET獲取當前請求所關(guān)聯(lián)的當前狀態(tài)(如Session)時執(zhí)行.
但是, 實際情況是, 我們使用AJAX控件時, 一個頁面會多次觸發(fā)這個事件, 并且Session會出現(xiàn)為NULL的情況.
原因是一些腳本和圖片是通過webresource.axd handler解析的, 但一個頁面使用多個腳本和圖片時, 頁面就會多次請求,
也就多次觸發(fā)這個事件了.
所以, 在事件中訪問Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請求的類型.
復制代碼 代碼如下:
if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx"))
return;
憋屈了兩天, 釋放了, 標記一下.
相關(guān)文章
Microsoft SQL Server 2005 Express 遠程訪問設(shè)置詳述,100%成功篇
Microsoft SQL Server 2005 Express Edition是Microsoft數(shù)據(jù)庫的低端解決方案,是免費的,并且可以隨軟件免費發(fā)布,而就其數(shù)據(jù)庫功能對于一般的企業(yè)級應用已足夠了。但 默認安裝時只允許本地訪問,而不能遠程訪問。2009-03-03使用NLog給Asp.Net Core做請求監(jiān)控的方法
這篇文章主要介紹了使用NLog給Asp.Net Core做請求監(jiān)控的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05ASP.NET AJAX 1.0 RC開發(fā)10分鐘圖解
12月15日,ASP.NET AJAX 1.0 RC版發(fā)布,我下載安裝試用了一下,沒有寫一行代碼,實現(xiàn)了一個簡單的AJAX應用,以下為截圖說明。2008-03-03c# 連接字符串數(shù)據(jù)庫服務(wù)器端口號 .net狀態(tài)服務(wù)器端口號
正常的數(shù)據(jù)庫連接字符串配置,這是在MSSQL服務(wù)器端口是1433(默認)的情況下。2009-06-06