2010-10-28 18 views
8

भेजा जा रहा है बिना मैं पूर्वनिर्धारित FaultContract विशेषताओं के साथ कुछ WCF सेवाओं की है। जब FaultException<TDetail> अपवाद फेंक दिए जाते हैं, तो वे स्टैकट्रेस, स्रोत और अन्य संभावित रूप से सहेजी गई जानकारी भेज रहे हैं।WCF FaultException StackTrace

यह संभव ही वापस जाने के लिए है: (सामान्य TDetail से)

  • विस्तार
  • FaultMessage
  • FaultCode
  • (और संभवतः) FaultReason

उत्तर

3

आप रोलिंग की कोशिश की है IErrorHandler का उपयोग कर अपना स्वयं का गलती अपवाद? यह भी सुनिश्चित करें कि आपकी ऐप कॉन्फ़िगरेशन फ़ाइल में IncludeExceptionDetailInFaults विशेषता झूठी पर सेट है और this सर्वोत्तम मूल्यों के लिए सहायक हो सकती है।

+2

IncludeExceptionDetailInFaults पहले से ही गलत है। जैसा कि मैं इसे समझता हूं, IncludeExceptionDetailInFaults केवल अनचाहे अपवादों पर लागू होता है जो पहले से ही FaultException प्रकार नहीं हैं। मैं पहले से ही करने के लिए एक नीति है कि सभी कार्यों को एक आधार FaultContract सौंपा है लागू करने के लिए में एक IErrorHandler लागू किया और कहा कि स्वचालित रूप से लॉग करता है और उस आधार गलती में बिना क्रिया अपवाद rethrows type.What मैं नहीं जानता है क्यों WCF अधिक जानकारी गुजर रहा है है की तुलना में FaultContract में परिभाषित किया गया। मैं वर्तमान में wsHttp बाइंडिंग और एक SOAP क्लाइंट के साथ इस व्यवहार का अनुभव कर रहा हूँ। – reifnir

+3

यह पता चला है कि क्लाइंट को वापस भेजा जा रहा StackTrace के साथ कोई समस्या नहीं थी। (समस्या कुंजीपटल के सामने थी।) मैं प्रतिक्रिया फलक में डब्ल्यूसीएफस्टॉर्म से प्राप्त प्रतिक्रिया की गलत व्याख्या कर रहा था। स्टैकट्रैक और स्रोत केवल क्लाइंट के बारे में जानकारी थी, न कि सर्वर पर। IncludeExceptionDetailInFaults निश्चित रूप से केवल उन अपवादों पर लागू होते हैं जो "अच्छी तरह से ज्ञात" नहीं हैं। सहायता क्षेत्र के लिए धन्यवाद। – reifnir

+0

अच्छा खेद है कि मैं और मदद नहीं कर सकता ... लेकिन आपका स्वागत है। – Terrance