2010-11-19 11 views
7

मुझे डब्ल्यूसीएफ क्लाइंट एक डब्ल्यूसीएफ सर्वर (उसी मशीन पर) से बात कर रहा है। हम संदेश-स्तरीय सुरक्षा के साथ netTcp बाइंडिंग का उपयोग करते हैं (कस्टम प्रिंसिपल प्रिमिशन मोड का उपयोग करके और सेवा प्रमाण-पत्रों का एक कस्टम कार्यान्वयन)। सेवा InstanceContextMode.PerSession के साथ चिह्नित है।डब्ल्यूसीएफ net.tcp कनेक्शन 9 घंटे के बाद मर जाता है, 1 मिनट

डब्ल्यूसीएफ सेवा विंडोज सेवा (आईआईएस में नहीं) में स्वयं-होस्ट की जाती है।

नकली रखने के लिए, हमारे पास Ping विधि है जो क्लाइंट हर 15 सेकंड में कॉल करता है। हम क्लाइंट प्रॉक्सी क्लाइंट प्रोग्राम के जीवनकाल के लिए खुले रहते हैं (क्योंकि सत्र शुरू करना हमारे मामले में महंगा है)।

इसके बावजूद, कनेक्शन 9 घंटे, 1 मिनट और थोड़ा (10 टेस्ट रनों में, 7 उनमें से 9h1m6s के बाद मृत्यु हो गई) के बाद गिरा दिया गया है।

डब्ल्यूसीएफ लॉग में परिणाम की एकमात्र चीज एक "सॉकेटकनेक्शन निरस्त" संदेश है, इसके बाद अपवादों के एक अलग सेट के बाद, लेकिन आम तौर पर "कनेक्शन दोषपूर्ण स्थिति में" अपवाद शामिल है।

क्या डब्ल्यूसीएफ में या टीसीपी/आईपी में कुछ समय समाप्ति है, जो इसका कारण बन रहा है? क्योंकि मैं फंस गया हूँ।

+2

10 टेस्ट रन, प्रत्येक 9 घंटे से अधिक समय लेता है? मैं आपके धैर्य की प्रशंसा करता हूं। –

+0

ईमानदारी से, यह 4 क्लाइंट के 2 टेस्ट रन और 2 क्लाइंट के एक ही समय में 2 है। तो केवल 18 घंटे, और रात भर छोड़ दिया, वैसे भी। –

+3

यदि आप ध्यान से फिर से सोचते हैं, '9x3600 + 60 + 6 <32768', जो 15 – ajreal

उत्तर

3

बहुत कठिन जांच के बाद: लगभग 9 घंटे बाद, डब्ल्यूसीएफ क्लाइंट सेवा के साथ पुनः प्रमाणीकरण करता है। प्रमाणीकरण चरण के दौरान मैं जो कुछ कर रहा हूं वह मौजूदा सत्र को मार रहा है।

+0

+1 - मैं इस समस्या में भाग गया और स्वतंत्र रूप से एक ही निष्कर्ष निकाला। इच्छा है कि मुझे पहले आपके शोध का लाभ होगा, लेकिन मुझे नहीं पता था कि क्या खोजना है। मैं उत्सुक हूँ कि प्रमाणीकरण के साथ क्या गलत हो रहा था? हमारे मामले में हम कस्टम प्रमाणीकरण कर रहे थे और जानबूझकर एक ही ग्राहक को दो बार कनेक्ट करने की अनुमति नहीं दे रहे थे, जिसे सत्यापन पर चेक किया गया था। तो, फिर से सत्यापन हमेशा विफल रहा था। –

+0

@ जोएलली: बिल्कुल, लेकिन आगे की ओर। पुन: प्रमाणीकरण पिछले बैकएंड सत्र को मार रहा था, जो 'लात' घटना शुरू कर रहा था, जिससे मुझे डब्ल्यूसीएफ सत्र को तोड़ने का कारण बन गया, जिसने ग्राहक को मार डाला। –

2

उपरोक्त आपकी टिप्पणियों से आप एक ही समय में परीक्षण चला रहे थे।

क्या वे एक ही सर्वर पर उसी एप्लिकेशन पूल का उपयोग कर रहे थे?

यदि ऐसा है तो एप्लिकेशन पूल का रीसाइक्लिंग एक ही समय में सभी परीक्षणों को रोक सकता है।

+0

हां, वही सर्वर। आईआईएस का उपयोग नहीं कर रहा है, इसलिए कोई आवेदन पूल नहीं है। मेरे क्यूए लड़के से ग्राहकों को घबराहट शुरू करने के लिए कहा, यह देखने के लिए कि क्या वे एक ही समय में मर जाते हैं, या बस उसी देरी के बाद। –

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