2010-05-06 6 views
8

मैं कभी-कभी समस्या में भाग लेता हूं कि डब्ल्यूसीएफ-क्रमबद्धता के दौरान एक एप्लिकेशन अपवाद फेंक दिया जाता है (मेरे ऑपरेशन कंट्रैक्ट से डेटाकंट्रैक्ट लौटने के बाद)। केवल (और कम meaningfull) संदेश मैंडब्ल्यूसीएफ क्रमबद्धता मुद्दों/अपवादों का पता लगाने के लिए कैसे करें

System.ServiceModel.CommunicationException है: अंतर्निहित कनेक्शन था बंद कर दिया: कनेक्शन अप्रत्याशित रूप से बंद हो गया।

आंतरिक अपवाद की किसी भी अंतर्दृष्टि के बिना, जो यह पता लगाना मुश्किल बनाता है कि धारावाहिकरण के दौरान त्रुटि क्या हुई।

क्या कोई इस बात को अच्छी तरह से जानता है कि आप इन अपवादों का पता लगाने, लॉग और डिबग कैसे कर सकते हैं? या इससे भी बेहतर मैं अपवाद पकड़ सकता हूं, उन्हें संभाल सकता हूं और क्लाइंट को परिभाषित फाउलमेज भेज सकता हूं?

धन्यवाद

उत्तर

5

आप आंतरिक अपवाद अगर आप इस तरह आपकी सेवा व्यवहार कॉन्फ़िगर मिलना चाहिए:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
       <behavior name="YourServiceBehaviour"> 
        ... 
        <serviceDebug includeExceptionDetailInFaults="true" /> 
        ... 
       </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 

इसके अतिरिक्त आप अनुरेखण सक्षम कर सकते हैं। एक अच्छा लेख अब वह नहीं मिला, लेकिन शायद यह आप शुरू हो जाता है:

http://developers.de/blogs/damir_dobric/archive/2009/03/24/using-of-wcf-trace.aspx

+4

आपके उत्तर के लिए धन्यवाद। IncludeExceptionDetailInFaults विशेषता केवल आपके ऑपरेशन नियंत्रण सीमाओं के अंदर होने वाले अपवादों के लिए लागू होती है। धारावाहिकता के दौरान मुद्दे इन सीमाओं के बाहर होते हैं। आपका दूसरा प्रस्ताव इन मुद्दों को लॉग (लेकिन संभाल नहीं) का समाधान हो सकता है। मैं इसे गहराई से देखूंगा। – Fabiano

+0

लिंक के लिए बहुत धन्यवाद। लॉगिंग ने मुझे समस्या खोजने में मदद की। – Walkor

0

मुझे लगता है कि समस्या थी, और यह एक क्रमबद्धता मुद्दा था ... कभी कभी मैं किसी भी स्तंभ के बिना एक DataTable भेज रहा था, कि में अगर चैनल बिना किसी त्रुटि या ट्रेस के बंद हो जाता है।

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