亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

autoeventwireup出問(wèn)題解決方法 autoeventwireup出問(wèn)題


autoeventwireup出問(wèn)題解決方法 autoeventwireup出問(wèn)題

文章插圖
最近在寫Webform頁(yè)面程序發(fā)現(xiàn)這樣一個(gè)現(xiàn)象:在做導(dǎo)出功能時(shí) , 由于導(dǎo)出數(shù)據(jù)的處理時(shí)間比較長(zhǎng) , 就在客戶端加一個(gè)定時(shí)器通過(guò)ajax不間斷查詢導(dǎo)出進(jìn)度 。然后發(fā)現(xiàn)了一個(gè)情況 , 這個(gè)請(qǐng)求一直是阻塞的狀態(tài) , 直到導(dǎo)出事件處理完成之后 。才去執(zhí)行這個(gè)請(qǐng)求 , 也就是說(shuō)如果響應(yīng)時(shí)間長(zhǎng)的請(qǐng)求還在進(jìn)行中 , 短的請(qǐng)求卻被掛起了 。
百度了下 , 最終確定是Asp.Net Session造成的 。原文:https://www.cnblogs.com/littlewrong/p/4783104.html
原理:Session實(shí)現(xiàn)了Reader/Writer的鎖機(jī)制:
當(dāng)頁(yè)面對(duì)Session具有可寫功能(即頁(yè)面有<%@Page EnableSessionState=”True” %>標(biāo)記) , 此時(shí)直到請(qǐng)求完成該頁(yè)面的Session持有一個(gè)寫鎖定 。
當(dāng)頁(yè)面對(duì)Session具有只讀功能(即頁(yè)面有<%@Page EnableSessionState=”ReadOnly” %>標(biāo)記) , 此時(shí)知道請(qǐng)求完成該頁(yè)面的Session持有一個(gè)讀鎖定 。
讀鎖定將阻塞一個(gè)寫鎖定;讀鎖定不會(huì)阻塞讀鎖定;寫鎖定將阻塞所有的讀寫鎖定 。這就是為什么兩個(gè)框架中的同一個(gè)頁(yè)面都去寫同一個(gè)Session時(shí) , 其中一個(gè)要等待另一個(gè)(稍快的那個(gè))完成后 , 才開(kāi)始寫 。
“寫鎖定將阻塞所有的讀寫鎖定” , 也就是說(shuō)頁(yè)面在EnableSessionState=”True”的情況下沒(méi)返回輸出時(shí) , 一直持著Session寫操作 , 其他頁(yè)面對(duì)Session的讀操作必須等待 , 而asp.net的aspx頁(yè)面默認(rèn)是EnableSessionState=”True” , 每個(gè)頁(yè)面從請(qǐng)求開(kāi)始至返回一直持著Session寫操作 , 需驗(yàn)證頁(yè)面必須讀取Session值判斷 , 這就是為什么需驗(yàn)證的頁(yè)面請(qǐng)求被阻塞的原因 。只要耗時(shí)頁(yè)面(A頁(yè)面)沒(méi)有Session的寫操作 , 也就不會(huì)阻塞其他頁(yè)面的請(qǐng)求 , 于是修改A頁(yè)面的EnableSessionState=”ReadOnly” , 例如:<%@ Page Language=”C#” AutoEventWireup=”true”CodeFile=”TBS_Monitor_List.aspx.cs”EnableSessionState=”ReadOnly” Inherits=”TBS_Monitor_List” %>  , 問(wèn)題解決 。
結(jié)論:也就是說(shuō) , 在無(wú)需對(duì)session進(jìn)行寫操作的頁(yè)面 , 在Page指令加上EnableSessionState=”ReadOnly”屬性 , 就不會(huì)造成Request阻塞的情況了 。


    以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!

    「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: