मैं सिंक्रोनस डब्ल्यूसीएफ सेवा का उपयोग कर रहा हूं जो 99% समय पर अच्छी तरह से काम करता है, लेकिन सर्वर पर प्रसंस्करण खत्म होने से पहले कुछ दुर्लभ मौकों पर ग्राहक के समय समाप्त हो जाते हैं। क्या SERVER पक्ष पर पता लगाने का कोई तरीका है, कि ग्राहक का समय समाप्त हो गया है? मैं एसिंक ऑपरेशन का उपयोग कर सकता था, लेकिन इस मामले में सर्वर-साइड टाइमआउट डिटेक्शन मुझे काफी काम बचाएगा। यदि यह मायने रखता है, तो मैं net.tcp बाध्यकारी का उपयोग कर रहा हूं।सर्वर पक्ष पर क्लाइंट के टाइमआउट अपवाद का पता कैसे लगाएं?
उत्तर
net.tcp, http, आदि के लिए सामान्य संख्या में। (कुछ विचारों के लिए ऊपर टिप्पणियां देखें; यह अन्य प्रोटोकॉल/बाइंडिंग/आदि के लिए भी अलग हो सकता है।)
कारण यह है कि सर्वर पक्ष पर डब्ल्यूसीएफ आधारभूत संरचना कोड का उपयोग करने से पहले चैनल का उपयोग नहीं करेगा सेवा संचालन के कार्यान्वयन कोड और प्रतिक्रिया marshalling। केवल तभी यह प्रतिक्रिया भेजने का प्रयास करेगा और इस बिंदु पर यह पहचान लें कि कनेक्शन पहले से ही ग्राहक द्वारा निरस्त कर दिया गया है।
जब सर्वर उस त्रुटि को प्राप्त करता है तो उपयोगकर्ता कोड (आपका सेवा संचालन कार्यान्वयन) पहले से ही किया जा चुका है और इस प्रकार आप वहां से उस पर प्रतिक्रिया नहीं दे सकते। यह एक प्रेषक, या अन्य विस्तार बिंदु के भीतर से संभव हो सकता है, लेकिन व्यक्तिगत रूप से मैंने कोशिश नहीं की है। हालांकि, यह आपके सर्वर को अनावश्यक काम से भी नहीं बचाएगा, क्योंकि जैसा कि कहा गया है, क्लाइंट डिस्कनेक्ट तब भी पहचाना जाएगा जब सर्वर वास्तव में उत्तर भेजने का प्रयास करता है।
ऐसे मुद्दों को कम करने का एक "सरल" तरीका कई सेवा संचालन/कॉल (अगर संभव हो तो काम को विभाजित करना है, और प्रक्रिया में सर्वर-साइड स्थिति को गलती से शुरू नहीं करना)। या जैसा कि अन्य ने कहा है, क्लाइंट ने "पिंग" इंटरफेस को कार्यान्वित किया है जो सर्वर यह जांचने के लिए उपयोग कर सकता है कि क्लाइंट अभी भी "जीवित" है और प्रतिक्रिया अभी भी जरूरी है।
- 1. सर्वर पक्ष पर रेटिना (एचडी) डिस्प्ले का पता लगाएं
- 2. क्लाइंट पक्ष पर धीमी इंटरनेट एएसपीनेट में सर्वर समय अपवाद के कारण क्यों हो सकती है?
- 3. WCF टाइमआउट क्लाइंट सर्वर
- 4. सिग्नलआर: क्लाइंट पर कनेक्शन स्थिति का पता लगाएं
- 5. Asp.net कोर में सत्र टाइमआउट का पता कैसे लगाएं?
- 6. UIPickerView पर परिवर्तनों का पता कैसे लगाएं?
- 7. PowerShell स्क्रिप्ट का पता लगाएं और विंडोज सर्वर 2008 पर
- 8. वेबब्रोसर नियंत्रण का पता लगाएं
- 9. लॉग क्लाइंट पक्ष सर्वर से त्रुटियों
- 10. सर्वर पक्ष
- 11. PHP सोप क्लाइंट टाइमआउट
- 12. क्लाइंट पक्ष पर jqGrid सॉर्टिंग
- 13. मेरे सर्वर पर किसी तृतीय पक्ष सर्वर
- 14. मोबाइल उपकरणों पर ब्राउज़र फोकस का पता कैसे लगाएं?
- 15. एनिमेटेड gif छवियों क्लाइंट पक्ष का पता लगाना संभव है?
- 16. ब्राउज़र में AJAX (XmlHttpRequest) कॉल पर टाइमआउट का पता कैसे लगाएं?
- 17. SQL सर्वर तालिका में डुप्लिकेट पंक्तियों का पता कैसे लगाएं?
- 18. स्थापना पर फोन विक्रेता का पता लगाएं
- 19. सिग्नलआर - सर्वर साइड पर कनेक्शन के लिए परिवहन विधि का पता लगाएं
- 20. प्रॉम्प्ट पर रिक्त मान का पता लगाएं
- 21. प्रोग्रामेटिक रूप से SQL सर्वर संस्करण का पता लगाएं
- 22. ब्राउज़र (क्लाइंट साइड) में AJAX अनुरोधों का पता लगाएं
- 23. भाषा का पता लगाएं
- 24. जाक्स-डब्ल्यूएस क्लाइंट टाइमआउट
- 25. सर्वर पक्ष पर मॉन्गो के कनेक्शन तक तैयार होने तक क्लाइंट साइड पर कैसे प्रतीक्षा करें?
- 26. का पता लगाएं और
- 27. टेस्टफ्लाइट का पता लगाएं?
- 28. एन्कोडिंग का पता लगाएं
- 29. सर्वर पक्ष
- 30. UIScrollView पर स्पर्श स्थान का पता लगाएं?
Async टाइमआउट कार्य के तरीके को नहीं बदलेगा। – usr
डब्ल्यूसीएफ एसिंक ऑपरेशंस के पास कोई रिटर्न वैल्यू नहीं है और जब तक ऑपरेशन सर्वर की तरफ पूरा नहीं हो जाता तब तक प्रतीक्षा न करें। मेरा टाइमआउट (कभी-कभी) लंबे सर्वर-साइड प्रोसेसिंग के कारण होता है, कोई नेटवर्क समस्या नहीं होती है। इस प्रकार एसिंक ऑपरेशन इस मुद्दे को हल करेगा, लेकिन मैं एक अलग समाधान की तलाश में हूं। –
जब आप डब्ल्यूसीएफ एसिंक कहते हैं, तो क्या आप 'async/await', या OneWay ऑपरेशन अनुबंधों के बारे में बात कर रहे हैं? आपकी टिप्पणी से, यह OneWay संचालन की तरह लगता है। जहां तक क्लाइंट पर टाइमआउट का पता लगाना है, मुझे यकीन नहीं है कि आप क्लाइंट साइड पर कर सकते हैं। सर्वर को यह देखने के लिए क्लाइंट को मतदान करने का कोई तरीका होगा कि यह अभी भी ऊपर था - शायद एक डुप्लेक्स बाध्यकारी। – Tim