2010-11-09 28 views
5

चूंकि गतिशील असेंबली लोडिंग के लिए एपोडिंग संबंधित एपडोमेन के साथ असेंबली को मारने में सक्षम होने के लिए एपडोमेन लोडिंग की आवश्यकता होती है, क्या एक प्रक्रिया में लोड होने के लिए "अधिकतम" संख्या एपडोमेन है? मैं एक सर्वर आधारित अनुप्रयोग के बारे में सोच रहा हूं कि प्रत्येक उपयोगकर्ता गतिशील रूप से अपना मालिकाना सी # कोड चला सकता है। लेकिन क्या कहना है, 2000 उपयोगकर्ता लॉग इन करते हैं और अपने कोड लोड करते हैं? क्या एपडोमेनियों की संख्या के अलावा मुझे कोई संभावित प्रतिबंध हो सकता है?एक प्रक्रिया में लोड किए गए एपडोमेन की अधिकतम संख्या

धन्यवाद।

उत्तर

5

लगभग सभी सीएलआर सीमा "स्मृति परमिट के रूप में" पर आधारित हैं। मुझे पता है कि एकमात्र अपवाद एक वर्ग के सदस्यों की संख्या है, जो 65536 तक सीमित है। यह टोकन मान की परिभाषा पर आधारित है। AppDomains के लिए ऐसा कुछ नहीं।

+3

एएसपी.नेट प्रति अनुरोध 1 'AppDomain' नहीं बनाता है। यह मूल रूप से 1 प्रति एएसपी.नेट वेबसाइट है। वह 'ऐपडोमेन' थोड़ी देर के लिए जिंदा रहता है, हालांकि ऐसी स्थितियां हैं जो स्वचालित रूप से "रीसायकल" कर सकती हैं। मुझे यकीन नहीं है कि SQL सर्वर क्या करता है, लेकिन प्रत्येक क्वेरी के लिए एक नया 'AppDomain' नहीं बनाया गया है। –

+0

@bin - गलती अलगाव कुंजी afaik है। एक बार थ्रेड एक अनचाहे अपवाद पर मर जाता है, तो विज्ञापन जंक है। यह नहीं हो सकता है कि * एक * पृष्ठ अनुरोध है कि बम अन्य सभी समवर्ती लोगों को मारता है। उन लोगों को रीसाइक्लिंग करना जो मर नहीं पाएंगे शायद। मुझे सटीक नियम नहीं पता हैं। –

+0

<यह एक पृष्ठ अनुरोध नहीं हो सकता है कि बम अन्य सभी समवर्ती लोगों को मारता है।> एएसपी.नेट के पास ढेर पर एक बड़ी पुरानी कोशिश/पकड़ है। 'HttpAplication.Error' ईवेंट में फ़नल। यदि कोई हैंडलर नहीं है, तो यह डिफ़ॉल्ट 500 त्रुटि पृष्ठ दिखाता है। अगर कुछ वास्तव में बुरा होता है, तो एएसपी.नेट डोमेन को रीसायकल करेगा, या पूरी कार्यकर्ता प्रक्रिया पुनरारंभ हो सकती है, लेकिन अधिकांश अनचाहे अपवाद इन चीजों का कारण नहीं बनते हैं। –

5

मुझे विश्वास नहीं है कि सीएलआर में निर्मित एक निश्चित अधिकतम मूल्य है। इसके बजाय यह स्मृति की मात्रा होगी जो निर्धारित करती है कि क्या आप गतिशील रूप से एक नया ऐपडोमेन लोड कर सकते हैं।

मैं कुछ शोध करूँगा, लेकिन मुझे नहीं लगता कि इसके लिए एक मूल्य सेट है।

संपादित करें:

Here's किसी अन्य पोस्ट जो स्पष्ट चीजों को मदद कर सकता है।

1

अधिकतर इसे आपकी ओएस सीमाओं द्वारा परिभाषित किया जाएगा। आपकी x86 मशीन एक प्रक्रिया के लिए स्मृति में 4 जीबी से अधिक का उपयोग नहीं कर सकती है [उपयोगकर्ता मोड में केवल 2 जीबी]। यदि आप x64 के लिए जाते हैं तो आपके पास बहुत बड़ी सीमा होती है। जो मुझे पता है उससे आपके द्वारा बनाए जा सकने वाले एप्लिकेशन डोमेन की संख्या की कोई सीमा नहीं है।