मेरे पास एक विंडोज सेवा है जो तीन अलग-अलग डुप्लेक्स डब्ल्यूसीएफ चैनल होस्ट करती है। ग्राहक अपने कॉलबैक अनुबंध के माध्यम से उन्हें भेजे गए अपडेट प्राप्त कर सकते हैं। अनिवार्य रूप से तीन पब-उप चैनल हैं।डब्ल्यूसीएफ - क्लोजटाइमआउट अवधि के लिए डुप्लेक्स सर्विसहोस्ट ब्लॉक बंद करना जब क्लाइंट (ओं) कनेक्ट होते हैं तो
क्लाइंट कनेक्ट होने पर यह सेवा बाउंस करने में काफी समय लेती है। ServiceHost.Close
पर कॉल करने के लिए 10 सेकंड लगते हैं (इसलिए सेवा को रोकने के लिए 30+ सेकंड लगते हैं।) यह पता चला है कि कॉन्फ़िगरेशन में मेरा closeTimeout
10 सेकंड है। इस मान को बदलने से संकेत मिलता है कि यह समस्या का कारण है।
चैनल को तुरंत बंद करने के लिए मुझे क्या करना है? मुझे इस विचार को पसंद नहीं है कि कुछ समय समाप्त हो रहा है। मैं Abort
पर कॉल कर सकता हूं, लेकिन ऐसा लगता है कि एक बेहतर तरीका होना चाहिए। मैंने इसे गैर-डुप्लेक्स चैनलों पर पहले नहीं देखा है, इसलिए मान लें कि यह डुप्लेक्स होने के साथ कुछ करने के लिए है।
आदर्श रूप से क्लाइंट को तुरंत सूचित किया जाएगा कि चैनल ने गलती की है, ताकि उपयोगकर्ता सीधे देख सकें कि अद्यतन बंद हो गए हैं।
क्या आपने यह कोशिश की है? क्या कहना है कि चैनल का दूसरा छोर 'क्लोजटाइमआउट' के लिए भी अवरुद्ध नहीं होगा? –
यह वैसे ही है जिस तरह से मैं डब्ल्यूसीएफ का उपयोग करता हूं और मुझे आपकी तरह की समस्या कभी नहीं थी। संयोग हो सकता है, हो सकता है। बस मेरा अनुभव साझा किया। – adontz