मेरे पास एक कंसोल ऐप में होस्ट की गई एक बहुत छोटी डब्ल्यूसीएफ सेवा है।डब्ल्यूसीएफ सेवा मेमोरी लीक्स
[ServiceContract]
public interface IService1
{
[OperationContract]
void DoService();
}
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]
public class Service1 : IService1
{
public void DoService()
{
}
}
और उसके जा रहा है कहा जाता है के रूप में
using (ServiceReference1.Service1Client client = new ServiceReference1.Service1Client())
{
client.DoService(new DoServiceRequest());
client.Close();
}
कृपया याद रखें कि सेवा basicHttpBindings पर प्रकाशित हुआ है।
समस्या
अब जब मैं 1000 के एक पाश में क्लाइंट कोड ऊपर प्रदर्शन किया मैं "सभी ढेर बाइट्स" और "निजी बाइट" प्रदर्शन काउंटरों (मैं .net स्मृति प्रोफाइलर प्रयुक्त) के बीच बड़ा अंतर पाया। जांच के बाद मुझे पता चला कि कुछ ऑब्जेक्ट्स ठीक से डिस्पोजेक्ट नहीं हैं निम्नलिखित ऑब्जेक्ट्स की सूची हैं (1000 अनजान उदाहरण पाए गए -> क्लाइंट कॉल के बराबर हैं)
(उन सभी के लिए नेमस्पेस System.ServiceModel है। चैनल)
HttpOutput.ListenerResponseHttpOutput.ListenerResponseOutputStream
BodyWriterMessage
BufferedMessage
HttpRequestContext.ListenerHttpContext.ListenerContextHttpInput.ListenerContextInputStream
HttpRequestContext.ListenerHttpContext
प्रश्न क्यों हम विमुखता वाला वस्तुओं और उन्हें कैसे नियंत्रित करने के लिए बहुत है।
कृपया मदद
मुझे सिस्टम लाइब्रेरी रिसाव की तरह दिखता है। ग्राहक (उपयोगकर्ता लिखित सेवा में) कोड उन बफर और धाराओं को स्पर्श नहीं करता है, और ऐसा लगता है कि डब्ल्यूसीएफ उन्हें निपटान नहीं कर रहा है। –
मबशार: क्या आपके पास इसके साथ कोई भाग्य है? मुझे एक जैसी समस्या है। – bugfixr
@bugfixr क्षमा करें भाई मैंने आपको आज संदेश देखा, मुझे याद नहीं है कि मैं उनसे छुटकारा पाने में सक्षम था लेकिन मुझे याद रखने की एक बात यह थी कि मैं फ्रेमवर्क 3.5 से फ्रेमवर्क 4.0 में स्थानांतरित हुआ, इससे आंशिक रूप से या पूरी तरह से मदद मिली याद रखें लेकिन इससे मुझे किसी तरह मदद मिली। देर से प्रतिक्रिया व्यक्त करने के लिए क्षमा करें। –