asp.net Application_AcquireRequestState事件,導(dǎo)致Ajax客戶端不能加載
更新時(shí)間:2010年03月04日 19:15:03 作者:
項(xiàng)目中使用Application_AcquireRequestState事件,來(lái)做一些用戶信息的驗(yàn)證工作.
開(kāi)發(fā)環(huán)境IIS7下一切正常,但是部署到IIS6服務(wù)器以后, 每次刷新頁(yè)面總出現(xiàn)Ajax客戶端不能加載的問(wèn)題.
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
string oldToken = Session["token"].ToString();
}
MSDN上說(shuō): Application_AcquireRequestState, 當(dāng)ASP.NET獲取當(dāng)前請(qǐng)求所關(guān)聯(lián)的當(dāng)前狀態(tài)(如Session)時(shí)執(zhí)行.
但是, 實(shí)際情況是, 我們使用AJAX控件時(shí), 一個(gè)頁(yè)面會(huì)多次觸發(fā)這個(gè)事件, 并且Session會(huì)出現(xiàn)為NULL的情況.
原因是一些腳本和圖片是通過(guò)webresource.axd handler解析的, 但一個(gè)頁(yè)面使用多個(gè)腳本和圖片時(shí), 頁(yè)面就會(huì)多次請(qǐng)求,
也就多次觸發(fā)這個(gè)事件了.
所以, 在事件中訪問(wèn)Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請(qǐng)求的類型.
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上說(shuō): Application_AcquireRequestState, 當(dāng)ASP.NET獲取當(dāng)前請(qǐng)求所關(guān)聯(lián)的當(dāng)前狀態(tài)(如Session)時(shí)執(zhí)行.
但是, 實(shí)際情況是, 我們使用AJAX控件時(shí), 一個(gè)頁(yè)面會(huì)多次觸發(fā)這個(gè)事件, 并且Session會(huì)出現(xiàn)為NULL的情況.
原因是一些腳本和圖片是通過(guò)webresource.axd handler解析的, 但一個(gè)頁(yè)面使用多個(gè)腳本和圖片時(shí), 頁(yè)面就會(huì)多次請(qǐng)求,
也就多次觸發(fā)這個(gè)事件了.
所以, 在事件中訪問(wèn)Session, 需要先判斷Session是否為NULL.
或者, 我們先判斷請(qǐng)求的類型.
復(fù)制代碼 代碼如下:
if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx"))
return;
憋屈了兩天, 釋放了, 標(biāo)記一下.
相關(guān)文章
.net生成縮略圖及水印圖片時(shí)出現(xiàn)GDI+中發(fā)生一般性錯(cuò)誤解決方法
這篇文章主要介紹了.net生成縮略圖及水印圖片時(shí)出現(xiàn)GDI+中發(fā)生一般性錯(cuò)誤解決方法 ,需要的朋友可以參考下2014-11-11
.net core使用FastHttpApi構(gòu)建web聊天室實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于.net core使用FastHttpApi構(gòu)建web聊天室的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
MVC+EasyUI+三層新聞網(wǎng)站建立 建站準(zhǔn)備工作(一)
這篇文章主要為大家詳細(xì)介紹了MVC+EasyUI+三層新聞網(wǎng)站建立的第一篇,建站的準(zhǔn)備工作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
ASP.NET內(nèi)置對(duì)象之Application對(duì)象
Application對(duì)象是HttpApplicationState類的一個(gè)實(shí)例,它可以產(chǎn)生一個(gè)所有Web應(yīng)用程序都可以存取的變量,這個(gè)變量的可以存取范圍涵蓋全部使用者,也就是說(shuō)只要正在使用這個(gè)網(wǎng)頁(yè)的程序都可以存取這個(gè)變量。2008-09-09
ASP.NET 頁(yè)面刷新的實(shí)現(xiàn)方法(包括html,js)
ASP.NET 頁(yè)面刷新的實(shí)現(xiàn)方法,比較全了, 包括html與js下的實(shí)現(xiàn)方法。2010-03-03
asp.net 頁(yè)面轉(zhuǎn)向 Response.Redirect, Server.Transfer, Server.Exec
如果你讀過(guò)很多行業(yè)雜志和 ASP.NET 示例,你會(huì)發(fā)現(xiàn),大多數(shù)人使用 Response.Redirect 將用戶引導(dǎo)到另一個(gè)頁(yè)面,而另一些人好像偏愛(ài)于神秘的 Server.Transfer,那么,這二者有什么區(qū)別?2009-11-11
.NET 中的裝箱與拆箱實(shí)現(xiàn)過(guò)程
本文分別介紹裝箱(boxing)與拆箱(unboxing)的實(shí)現(xiàn)過(guò)程,感興趣的朋友可以了解下2013-01-01

