2012-09-04 17 views
6

मेरे पास एक ऐसा एप्लिकेशन है जिसमें कुछ नियंत्रक के कार्य धीमे तृतीय पक्ष वेब सेवाओं को बुलाते हैं। इन क्रियाओं को पृष्ठ से AJAX कॉल का उपयोग करने के लिए कहा जाता है।एएसपी.नेट एमवीसी: सत्र लॉक को कैसे रोकें?

मैं ASP.NET थ्रेड पूल को मुक्त करने के लिए async नियंत्रकों का उपयोग कर सकता हूं, यह बहुत अच्छा है। लेकिन सत्र के बारे में क्या? यदि मैं इनप्रोक सत्र का उपयोग करता हूं और "धीमी गति से कार्रवाई" के लिए अनुरोध किया गया है तो विशेष उपयोगकर्ता एप्लिकेशन को कोई अनुरोध नहीं कर सकता क्योंकि उसका सत्र पहले "धीमे" कॉल द्वारा लॉक किया गया है।

पीएचपी में एक विधि session_write_close() जो मैं निम्नलिखित के रूप में उपयोग कर सकते हैं: सत्र डेटा के आधार पर

  1. उपयोगकर्ता का आमंत्रण स्वीकार कार्रवाई उपयोगकर्ता की
  2. चेक अधिकार धीमा करने के लिए नियंत्रक/कार्रवाई का उपयोग करने की
  3. यदि आवश्यक हो तो सत्र में कुछ लिखें
  4. session_write_close() पर कॉल करें। इस बिंदु सत्र से इस अनुरोध और उसी उपयोगकर्ता द्वारा किसी अन्य अनुरोध के द्वारा बंद कर दिया है उस तक पहुँच सकते
  5. मेरी धीमी गति से कॉल करें (हो सकता है कुछ async तरह से)

मुझे पता है कि मैं सत्र स्थिति निष्क्रिय कर सकते हैं [SessionState] विशेषता का उपयोग कर नियंत्रक स्तर पर, लेकिन यह समाधान नहीं है।

कोई विचार?

+0

पढ़ने की कोशिश कोई निवेदन? –

+0

यहां विवरण हैं: http://stackoverflow.com/questions/3666556/a-non-locking-in-process-asp-net-session-state-store और यहां एक और विषय मेरे समान प्रश्न पर: http: // stackoverflow.com/questions/2438493/the-whole-site-is-blocked-while-one-page-is-waiting-for-blocking-operation-php – artvolk

+0

यहां एक अंतिम विवरण है: http://stackoverflow.com/ प्रश्न/362970 9/i-just-discover-why-all-asp-net-website-are-slow-and-i-am-try-to-work-out – artvolk

उत्तर

0

मुझे लगता है कि यह कई परिदृश्य हो सकता है।

1) नियंत्रक कारखाने में परिवर्तन करने और इसे बदलने के सत्र के बिना या कुछ custome सत्र कार्यान्वयन के साथ contorllers निर्माण करने के लिए

2) तुम्हें क्या लगता है कि सत्र से "बंद" है इस article about sessionless controllers

+0

बदलें सत्र कार्यान्वयन एक अच्छा विचार नहीं है, सत्रहीन मेरे प्रश्न में नियंत्रकों का उल्लेख किया गया है। यहां एक "प्रति क्रिया" कार्यान्वयन है: http://sapoval.org/per-action-custom-sessionstateattribute – artvolk