2010-07-23 15 views
6

नहीं है जब एक ग्राहक सत्र एक ASP.NET MVC2 आवेदन मुझे लगता है एक धागा पूल से एक विशेष बात यह है कि अनुरोध हैंडल करने के लिए स्थापित किया गया है, यह करने के लिए एक निश्चित जवाब खोजने के लिए सक्षम किया गया। क्या वही धागा हमेशा उस सत्र के बाद के सभी अनुरोधों को संभालता है? तो सिद्धांत रूप में यदि किसी भी तरह से सत्र आईडी गड़बड़ हो गई थी और गलत धागा उठाया गया तो कोई भी सत्र स्तर डेटा गायब होगा? धन्यवादसत्र और धागे

+0

मुझे यकीन नहीं है कि थ्रेडिंग पहलू सत्र आईडी को गड़बड़ कर देगा। क्या आप अपनी सोच को और कुछ समझा सकते हैं? –

उत्तर

2

सं प्रत्येक अनुरोध एक अलग धागा द्वारा नियंत्रित किया जा सकता है। इसका मतलब है कि किसी पृष्ठ पर विभिन्न संसाधनों को विभिन्न धागे से नियंत्रित किया जा सकता है। या वे एक ही पर संभाला जा सकता है। यह कार्यकर्ता प्रक्रिया पर निर्भर करता है और यह पता लगाने के लिए कि क्या यह एक नया धागा बनाने के लिए उपयुक्त है या एक उपलब्ध होने तक प्रतीक्षा करने के लिए बेहतर है।

पेज एक थ्रेड द्वारा प्रदान की गई किया जाएगा और फिर छवियों, शैली शीट्स और javascripts एक ही या अन्य धागे पर संभाला जा सकता है। यह सामान्य रूप से स्टेटस प्रकृति ओएस एएसपी.नेट और वेब प्रोग्रामिंग के लिए मौलिक है। यह आपको अलग-अलग सर्वरों या यहां तक ​​कि अलग-अलग डोमेन पर अपने सभी अनुरोधों को संतुलित करने के बावजूद करने की अनुमति देता है।

यह हमें सत्र राज्य के बारे में आपके प्रश्न पर लाता है। आपको अनुरोधों के बीच सत्र आईडी खोना नहीं चाहिए। यदि आप हैं, तो कुछ गंभीर गलत है। या आप एक वेब फार्म/क्लस्टर स्थिति में हो सकते हैं जहां एक अनुरोध एक सर्वर पर जा रहा है और अगली किसी अन्य प्रकार के लोड संतुलन के माध्यम से दूसरे को भेजा जाता है।

एक लोड संतुलित स्थिति में आप सत्र स्थिति बने के कुछ साधन करना होगा। दो सबसे आम दृष्टिकोण डेटाबेस और एक वितरित कैश में सहेजे जा रहे हैं। बाद में मेरा पसंदीदा दृष्टिकोण है क्योंकि सत्र डेटा अपनी प्रकृति से एक अस्थायी चीज है और यह लगातार डीबी में नहीं है।

3

संक्षेप में, नहीं, नहीं के तहत आईआईएस (मैं "कैसिनी" दृश्य स्टूडियो में वेब विकास सर्वर समर्थन नहीं कर सकता, लेकिन मैं भी वहाँ पर शक)

आप निम्न को जोड़कर बदलते धागा प्रदर्शित कर सकते हैं एक दृश्य के लिए:

<%= System.Threading.Thread.CurrentThread.ManagedThreadId %> 

अब बार-बार अपने ब्राउज़र से पेज मारा (या शायद 2 या 3 ब्राउज़र से यह हिट) और आप इसे समय-समय पर परिवर्तन देखेंगे। इस जैसे एक साधारण परिदृश्य में, आप अक्सर समान थ्रेड अनुरोध सर्विसिंग के रूप में इसके लायक ASP.NET अधिक धागे बनाने की तुलना में इसकी आवश्यकता नहीं है देख सकते हैं, लेकिन एक बार आप सर्वर लोड हो रहा है शुरू -

कहा करने के बाद कि , आप एकाधिक धागे देखेंगे।

संबंधित मुद्दे