मैं ऑनलाइन बहुत सारे डब्ल्यूसीएफ लेख पढ़ रहा हूं और ऐसा लगता है कि ज्यादातर लोग चैनलफैक्टरी ऑब्जेक्ट्स को कैश करते हैं लेकिन चैनल नहीं। ऐसा लगता है कि ज्यादातर लोग चैनल कैशिंग का उपयोग करने से डरते हैं क्योंकि वे नेटवर्क दोषों को संभालना नहीं चाहते हैं जो कैश किए गए चैनल को अनुपयोगी प्रदान कर सकते हैं। लेकिन इसे विधि पर संचार अपवाद को पकड़कर आसानी से तय किया जा सकता है, चैनल को फिर से बनाया जा सकता है, और प्रतिबिंब का उपयोग करके विधि को फिर से चलाया जा सकता है।डब्ल्यूसीएफ चैनल कैशिंग क्यों खराब चीज है?
फिर ऐसे लोग हैं जो सोचते हैं कि चैनल कैशिंग करना बुरा है क्योंकि सभी संचार एक चैनल से गुजरेंगे। निम्नलिखित लेख देखें।
http://social.msdn.microsoft.com/Forums/is/wcf/thread/9cbdf92a-a749-40ce-9ebe-3f2622cd78ee
इस जरूरी एक बुरी बात है? क्या आप थ्रेड में चैनल साझा नहीं कर सकते? क्या प्रदर्शन भुगतना होगा क्योंकि इस एकल चैनल में कई विधि कॉल किए जाएंगे, जो क्रमशः संसाधित हो जाएंगे?
मुझे सबूत नहीं मिला है कि चैनल साझा करना प्रदर्शन को कम कर देगा। मुझे जो मिला वह यह है कि एक कैश किए गए चैनल का उपयोग गैर-कैश किए गए चैनल का उपयोग करने से लगभग 5 गुना तेज है, भले ही इसका मतलब कैश किए गए चैनलों पर विधियों को कॉल करने के लिए प्रतिबिंब का उपयोग करना है।
अन्य लाभ सभी अपने WCF बंद कॉल करने के लिए ट्राई/कैच/अंत में बयान के साथ कहता है (चारों ओर हो रही है नहीं), बीच में बंद करें(), या() फेंक चैनल पर जब आप इसे के साथ किया जाता है। मेरे लिए ऐसा लगता है कि डब्ल्यूसीएफ ने डेवलपर्स को डब्ल्यूसीएफ चैनल संसाधनों का प्रबंधन करने के लिए मजबूर कर गलत दिशा में एक कदम उठाया। .NET Remoting में, आपने एक्टिवेटर क्लास का उपयोग करके प्रॉक्सी बनाया और इसे साफ़ करने के लिए आपको कुछ भी करने की ज़रूरत नहीं थी। .NET Framework ने आपके लिए यह सब संभाला।
यह एक अच्छा सवाल है। –