एएसपी.नेट एक ही सत्र के लिए समवर्ती अनुरोधों की अनुमति नहीं देता है; जिसका अर्थ है कि उपयोगकर्ता एक समय में केवल 1 अनुरोध कर सकता है।क्या एएसपी.NET सत्रों का उपयोग करते समय अनुरोध समेकन को मजबूर करना संभव है?
उदाहरण के लिए, कहते हैं कि हम Test1.aspx
है:
public partial class Test1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["test"] = 1;
System.Threading.Thread.Sleep(int.Parse(Request.QueryString["timeout"]));
}
}
... और Test2.aspx
:
public partial class Test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["test"] = 1;
Label1.Text = DateTime.Now.ToString("dd/MM/yy HH:mm:ss");
}
}
जब हम पर जाएँ Test1.aspx?timeout=10000
, और फिर तुरंत यात्रा Page2.aspx
के बाद, 2 अनुरोध करना होगा पहला अनुरोध पूरा होने तक 10 सेकंड तक प्रतीक्षा करें।
मैंने अभी यह अभी सीखा है, और मैं 5 साल के लिए एएसपी.नेट का उपयोग कर रहा हूं! जब तक मैं इसे किसी एमएसडीएन पृष्ठ (ASP.NET Session State Overview) के नीचे पढ़ता हूं तब तक मैं वास्तव में विश्वास नहीं करता था।
तो, क्या समेकन को मजबूर करने का कोई तरीका है? यही है, पृष्ठों को तेज़ी से बनाने, या पृष्ठभूमि थ्रेड पर लंबे समय तक चलने वाले कोड को स्थानांतरित करने के अलावा। मुझे पता है कि आप सत्र को केवल पढ़ सकते हैं, लेकिन मुझे पूरा यकीन नहीं है कि यह एक व्यावहारिक विकल्प है।
वाह, मैं इसे 1.0 के बाद से उपयोग कर रहे हैं इस्तेमाल किया जा सकता है और यह भी नहीं पता था कि :(यह हो गया है मैंने जिन ऐप्स के साथ काम किया है, उनमें से कोई भी समस्या नहीं है, लेकिन मुझे आश्चर्य है कि यह ऐप में क्या करेगा जो किसी सत्र के लिए सत्र का उपयोग करता है और फिर ब्राउज़र पर एक बड़ी डाउनलोड फ़ाइल भेजने के लिए आगे बढ़ता है। असल में, बस एक था मेरे पीछे एक फ़ाइल हैंडलर में सत्र को अक्षम करने के लिए फ्लैश बैक, क्योंकि हम भविष्य में सत्र बंद प्रक्रिया को स्थानांतरित करने की योजना बना रहे थे, मुझे आश्चर्य है कि डाउनलोड को ऐप अवरुद्ध क्यों किया गया है, यह जानने के लिए सिरदर्द कितना बड़ा होगा ... – eglasius
इस के बाद से ऊपर हटाना सवाल भी मेरे दिमाग के पीछे भी रहा है।बहुत करीबी से संबंधित: क्या यह समवर्ती प्रतिबंध एएसएमएक्स webservice कॉल पर भी लागू होता है जहां [WebMethod (EnableSession = true)]? – mikemanne
मेरे परीक्षणों में अब तक यह nbolton वर्णन से भी बदतर है; भले ही टेस्ट 2 सत्र तक पहुंच/परिवर्तन न करे, फिर भी टेस्ट 1 समाप्त होने तक यह तब तक अवरुद्ध होगा। इसके आस-पास काम करने का एकमात्र तरीका यह है कि Test2 पर पृष्ठ निर्देश के रूप में EnableSessionState = "गलत" को स्पष्ट रूप से सेट करना है। – Chris