2009-10-29 8 views
5

मेरे पास एक विंडोज सेवा है जो तीन अलग-अलग डुप्लेक्स डब्ल्यूसीएफ चैनल होस्ट करती है। ग्राहक अपने कॉलबैक अनुबंध के माध्यम से उन्हें भेजे गए अपडेट प्राप्त कर सकते हैं। अनिवार्य रूप से तीन पब-उप चैनल हैं।डब्ल्यूसीएफ - क्लोजटाइमआउट अवधि के लिए डुप्लेक्स सर्विसहोस्ट ब्लॉक बंद करना जब क्लाइंट (ओं) कनेक्ट होते हैं तो

क्लाइंट कनेक्ट होने पर यह सेवा बाउंस करने में काफी समय लेती है। ServiceHost.Close पर कॉल करने के लिए 10 सेकंड लगते हैं (इसलिए सेवा को रोकने के लिए 30+ सेकंड लगते हैं।) यह पता चला है कि कॉन्फ़िगरेशन में मेरा closeTimeout 10 सेकंड है। इस मान को बदलने से संकेत मिलता है कि यह समस्या का कारण है।

चैनल को तुरंत बंद करने के लिए मुझे क्या करना है? मुझे इस विचार को पसंद नहीं है कि कुछ समय समाप्त हो रहा है। मैं Abort पर कॉल कर सकता हूं, लेकिन ऐसा लगता है कि एक बेहतर तरीका होना चाहिए। मैंने इसे गैर-डुप्लेक्स चैनलों पर पहले नहीं देखा है, इसलिए मान लें कि यह डुप्लेक्स होने के साथ कुछ करने के लिए है।

आदर्श रूप से क्लाइंट को तुरंत सूचित किया जाएगा कि चैनल ने गलती की है, ताकि उपयोगकर्ता सीधे देख सकें कि अद्यतन बंद हो गए हैं।

उत्तर

0

शायद, सबसे अच्छा तरीका क्लाइंट को सूचित करना है (आपके पास डुप्लेक्स है, तो आप कर सकते हैं) और क्लाइंट को चैनल बंद कर दें।

+1

क्या आपने यह कोशिश की है? क्या कहना है कि चैनल का दूसरा छोर 'क्लोजटाइमआउट' के लिए भी अवरुद्ध नहीं होगा? –

+0

यह वैसे ही है जिस तरह से मैं डब्ल्यूसीएफ का उपयोग करता हूं और मुझे आपकी तरह की समस्या कभी नहीं थी। संयोग हो सकता है, हो सकता है। बस मेरा अनुभव साझा किया। – adontz

1

"आदर्श रूप से क्लाइंट को तुरंत सूचित किया जाएगा कि चैनल में गलती हुई है, ताकि उपयोगकर्ता सीधे देख सकें कि अद्यतन बंद हो गए हैं।"

  • बंद रहता है
  • समापन
  • गलती
  • खोला
  • उद्घाटन:

    WCF ग्राहक उदाहरण घटनाओं आप सदस्यता ले सकते हैं।

गलती घटना अपने द्वैध चैनल किसी भी कारण से रुका जैसे ही उठाया जाता है।

मुझे आश्चर्य है कि आपका सेवा होस्ट 30+ सेकंड बंद करने के लिए क्यों है। क्या आप कुछ नमूना कोड प्रदान कर सकते हैं?

+0

आईआईआरसी, चैनल केवल यह पता लगाता है कि जब आप वास्तव में इसके साथ कुछ करने का प्रयास करते हैं, या यदि आप दिल की धड़कन स्थापित करते हैं (जिस स्थिति में अभी भी देरी हो रही है) तो यह दोषपूर्ण है। –

संबंधित मुद्दे