मैं .NET सेवा मॉडल का उपयोग कर एक सी # वेब सेवा कॉल कर रहा हूं और कभी-कभी यह वेब सेवा Microsoft.SharePoint.SoapServer.SoapServerException को फेंकता है। मैं अपने क्लाइंट कोड में FaultException के रूप में इस विशेष अपवाद को पकड़ सकता हूं हालांकि मुझे FaultException का उपयोग करके वेब सेवा द्वारा लौटाए गए दोस्ताना त्रुटि संदेश नहीं मिल सकता है।वेब सेवा में FaultException को पकड़ना
अपवाद होने पर वेब सेवा के लिए नेटवर्क ट्रेस निम्नलिखित है।
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring>
<detail>
<errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Access to this Web site has been blocked.
Please contact the administrator to resolve this problem.</errorstring>
<errorcode xmlns="http://schemas.microsoft.com/sharepoint/soap/">0x81020071</errorcode>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
मुझे उपर्युक्त प्रतिक्रिया में त्रुटिस्ट्रिंग नोड के बीच सामग्री प्राप्त करने में बहुत दिलचस्पी है। हालांकि FaultException वर्ग से मैं उपर्युक्त त्रुटि संदेश पुनर्प्राप्त नहीं कर सकता। क्या इसका मतलब है कि .NET ढांचा उपर्युक्त प्रतिक्रिया को सही ढंग से निराश नहीं करता है या मैं यहां गलत अपवाद वर्ग का उपयोग कर रहा हूं।
फॉल्टएक्सप्शन से प्राप्त एकमात्र त्रुटि संदेश "प्रकार का अपवाद" माइक्रोसॉफ्ट.शेयरपॉइंट.ओपसेसर। सोपसेवर एक्सेप्शन 'फेंक दिया गया था "और कुछ नहीं।
कृपया ध्यान दें कि मेरे पास वेब सेवा पर कोई नियंत्रण नहीं है।
धन्यवाद, आप कोड ने मुझे अभी और मुझे अपनी समस्या को हल करने के बारे में विचार दिया है (कुछ घंटों से लड़ने के बाद)। यदि आप प्रतिबिंब के माध्यम से डब्ल्यूसीएफ प्रॉक्सी क्लास के तरीकों का आह्वान कर रहे हैं, तो आंतरिक रूप से गलती अपवाद के साथ उस clr फेंक प्रतिबिंब अपवाद से अवगत रहें। –