मेरे पास आईआईएस में होस्ट किया गया डब्ल्यूसीएफ एप्लीकेशन है (C#/.Net 4
में लिखा गया है)। समय के साथ, प्रक्रिया की हैंडल गिनती कम या ज्यादा रैखिक फैशन में बढ़ जाती है (प्रक्रिया रीसायकल से पहले 30,000 के रूप में उच्च हो रही है)। SysInternals प्रक्रिया एक्सप्लोरर के मुताबिक, इस प्रक्रिया में हैंडल का बड़ा हिस्सा Thread
है। हालांकि, प्रदर्शन मॉनिटर के अनुसार, धागे की संख्या कम या ज्यादा स्थिर (लगभग 40) शेष है।"लीकिंग" थ्रेड हैंडल
स्पष्ट रूप से, मैं कुछ गलत कर रहा हूं और Thread Handles
लीक कर रहा हूं। हालांकि, मैं अस्पष्ट हूं कि इस संदर्भ में Thread Handle
क्या है। मुझे लगता है कि यह धागे के लिए एक हैंडल है, लेकिन चूंकि धागे की संख्या लगातार बनी हुई है, इसलिए मुझे नहीं लगता कि हैंडल गिनती कैसे बढ़ रही है। और, मैं थ्रेड को हैंडल रखने के किसी भी तरीके से नहीं सोच सकता, जबकि थ्रेड स्वयं चला जाता है। इसके अलावा, मैं स्पष्ट रूप से नए धागे नहीं बना रहा हूं (मैं स्थानों पर ThreadPool
का उपयोग कर रहा हूं)।
स्पष्ट रूप से, मुझे कुछ याद आ रहा है। पर क्या?
क्या आपके पास सिंगल इंस्टेंस, पर्कॉल या सत्र के रूप में डब्ल्यूसीएफ सेवा है? क्या आप वहां एक आईओसी कंटेनर का उपयोग कर रहे हैं? – Jordi
क्या आप अपने आप से धागे का प्रबंधन कर रहे हैं या आप थ्रेड पूल का उपयोग कर रहे हैं? आपके आवेदन का किस प्रकार के धागे उपयोग करते हैं (क्या हम आईआईएस द्वारा किए गए धागे के बारे में बात कर रहे हैं -> आईआईएस द्वारा सीमित, या अपने स्वयं के धागे)? – Rafa
डब्ल्यूसीएफ सेवा एकल उदाहरण और एकाधिक समरूपता है। कोई आईओसी कंटेनर नहीं। –