2012-01-01 19 views
10

मैं अपने एएसपीएनटी एमवीसी 3 एप्लिकेशन (आईआईएस 7 पर) में एक मालिकाना आईओसी तंत्र का उपयोग कर रहा हूं जो [थ्रेडस्टैटिक] फ़ील्ड में राज्य बचाता है और इसलिए एक धारणा पर निर्भर करता है कि HttpAplication.BeginRequest, HttpAplication.EndRequest और वे (सिंगल) अनुरोध के पूरे सिंक्रोनस निष्पादन से संबंधित हैं जो समान धागे पर निष्पादित होते हैं।asp.net mvc3 अनुरोध थ्रेड एफ़िनिटी

क्या यह धारणा सही है?

उत्तर

9

क्या यह धारणा सही है?

नहीं, यह धारणा not correct है और इसके लिए evidence है। एएसपी.नेट में एकमात्र विश्वसनीय प्रति अनुरोध भंडारण तंत्र HttpContext.Items है।

एएसपी.NET एप्लिकेशन में प्रति-अनुरोध मानों को संग्रहीत करने के लिए [ThreadStatic] फ़ील्ड्स का कभी भी उपयोग न करें। उदाहरण के लिए यदि आपके पास एसिंक्रोनस कंट्रोलर है तो आप बहुत अच्छी तरह से अनुरोध कर सकते हैं कि इंजन थ्रेड पूल से अनुरोध करने के लिए अनुरोध करे, फिर एक आईओसीपी (आई/ओ प्रोजेक्शन पोर्ट) पर निर्भर एक एसिंक्रोनस ऑपरेशन शुरू करें और आखिरकार एक और धागा खींचें अनुरोध खत्म करने के लिए पूल। तो आपके पास एक ही HTTP अनुरोध की सेवा करने वाले 2 अलग-अलग धागे हो सकते हैं।

बिल्कुल इस तथ्य पर भरोसा न करें कि HTTP अनुरोध उसी धागे द्वारा परोसा जाएगा।

कुछ मामलों में यह सिंक्रोनस अनुरोधों के लिए सच हो सकता है लेकिन याद रखें कि यह केवल एक कार्यान्वयन विस्तार है। यह .NET के दूसरे संस्करण से किसी भी नोटिस के बिना किसी भी सूचना के बदल सकता है। आपको कभी भी इस पर भरोसा नहीं करना चाहिए और कभी भी एएसपी.नेट में [ThreadStatic] का उपयोग नहीं करना चाहिए। यह आपको बहुत बुरी तरह काट सकता है।

+0

क्या ऐसे व्यवहार को पुन: पेश करने का कोई आसान तरीका है? – Rookian

+2

वाह मैं इस जवाब से बहुत चौंक गया हूं, मुझे सच में विश्वास था कि एएसपी.नेट एमवीसी प्रति थ्रेड के हर अनुरोध को संसाधित कर रहा था। क्या यह अभी भी एमवीसी 5 के मामले में है? आप कैसे समझाते हैं कि बहुभाषी अनुप्रयोग के लिए Thread.CurrentThread.CurrentCulture सेट करना संभव है, यदि अनुरोध प्रति थ्रेड पर संसाधित नहीं होते हैं? – reddy

+0

@reddy जहां तक ​​मुझे पता है कि एएसपी.नेट उन वस्तुओं का ख्याल रखता है (एचटीपी कोंटेक्स्ट, करंटकल्चर, ...) और उन्हें एक थ्रेड से दूसरी तरफ स्थानांतरित करें। – Rookian

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