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

autoeventwireup出問題解決方法 autoeventwireup出問題


autoeventwireup出問題解決方法 autoeventwireup出問題

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


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

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