asp.net Application_AcquireRequestState事件,導(dǎo)致Ajax客戶端不能加載
更新時(shí)間:2010年03月04日 19:15:03 作者:
項(xiàng)目中使用Application_AcquireRequestState事件,來做一些用戶信息的驗(yàn)證工作.
開發(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, 當(dāng)ASP.NET獲取當(dāng)前請求所關(guān)聯(lián)的當(dāng)前狀態(tài)(如Session)時(shí)執(zhí)行.
但是, 實(shí)際情況是, 我們使用AJAX控件時(shí), 一個(gè)頁面會多次觸發(fā)這個(gè)事件, 并且Session會出現(xiàn)為NULL的情況.
原因是一些腳本和圖片是通過webresource.axd handler解析的, 但一個(gè)頁面使用多個(gè)腳本和圖片時(shí), 頁面就會多次請求,
也就多次觸發(fā)這個(gè)事件了.
所以, 在事件中訪問Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請求的類型.
if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx"))
return;
憋屈了兩天, 釋放了, 標(biāo)記一下.
復(fù)制代碼 代碼如下:
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
string oldToken = Session["token"].ToString();
}
MSDN上說: Application_AcquireRequestState, 當(dāng)ASP.NET獲取當(dāng)前請求所關(guān)聯(lián)的當(dāng)前狀態(tài)(如Session)時(shí)執(zhí)行.
但是, 實(shí)際情況是, 我們使用AJAX控件時(shí), 一個(gè)頁面會多次觸發(fā)這個(gè)事件, 并且Session會出現(xiàn)為NULL的情況.
原因是一些腳本和圖片是通過webresource.axd handler解析的, 但一個(gè)頁面使用多個(gè)腳本和圖片時(shí), 頁面就會多次請求,
也就多次觸發(fā)這個(gè)事件了.
所以, 在事件中訪問Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請求的類型.
復(fù)制代碼 代碼如下:
if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx"))
return;
憋屈了兩天, 釋放了, 標(biāo)記一下.
相關(guān)文章
.NET 刷新頁面防止表單二次提交的實(shí)現(xiàn)方法
頁面上按鈕是服務(wù)器控件,現(xiàn)在刷新頁面要防止按鈕事件重復(fù)執(zhí)行。這篇文章給大家?guī)砹?net刷新頁面防止表單二次提交的實(shí)現(xiàn)方法,非常不錯(cuò),感興趣的朋友一起看看吧2016-09-09Microsoft SQL Server 2005 Express 遠(yuǎn)程訪問設(shè)置詳述,100%成功篇
Microsoft SQL Server 2005 Express Edition是Microsoft數(shù)據(jù)庫的低端解決方案,是免費(fèi)的,并且可以隨軟件免費(fèi)發(fā)布,而就其數(shù)據(jù)庫功能對于一般的企業(yè)級應(yīng)用已足夠了。但 默認(rèn)安裝時(shí)只允許本地訪問,而不能遠(yuǎn)程訪問。2009-03-03使用NLog給Asp.Net Core做請求監(jiān)控的方法
這篇文章主要介紹了使用NLog給Asp.Net Core做請求監(jiān)控的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05ASP.NET AJAX 1.0 RC開發(fā)10分鐘圖解
12月15日,ASP.NET AJAX 1.0 RC版發(fā)布,我下載安裝試用了一下,沒有寫一行代碼,實(shí)現(xiàn)了一個(gè)簡單的AJAX應(yīng)用,以下為截圖說明。2008-03-03c# 連接字符串?dāng)?shù)據(jù)庫服務(wù)器端口號 .net狀態(tài)服務(wù)器端口號
正常的數(shù)據(jù)庫連接字符串配置,這是在MSSQL服務(wù)器端口是1433(默認(rèn))的情況下。2009-06-06通用?HTTP?簽名組件的另類實(shí)現(xiàn)方式
這篇文章主要介紹了通用?HTTP?簽名組件的另類實(shí)現(xiàn)方式,實(shí)現(xiàn)思路大概是采用鏈?zhǔn)秸{(diào)用的方式,使得簽名的步驟可以動(dòng)態(tài)拼湊組合,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09