Catching FaultException in WebServices

8

Ich rufe einen C # -Webdienst mit dem .net-Dienstmodell auf, und gelegentlich löst dieser Webdienst Microsoft.SharePoint.SoapServer.SoapServerException aus. Ich kann diese bestimmte Ausnahme als eine FaultException in meinem Clientcode abfangen, aber ich kann die freundliche Fehlermeldung, die vom Webdienst mit FaultException zurückgegeben wird, nicht abrufen.

Nachfolgend ist die Netzwerkablaufverfolgung für den Web-Service aufgeführt, wenn eine Ausnahme vorliegt.

%Vor%

Ich bin sehr daran interessiert, den Inhalt zwischen dem Fehlerkettenknoten in der obigen Antwort zu bekommen. Von der FaultException-Klasse kann ich die obige Fehlermeldung jedoch nicht abrufen. Bedeutet das, dass das .NET-Framework die obige Antwort nicht korrekt deserialisiert oder verwende ich hier die falsche Exception-Klasse.

Die einzige Fehlermeldung, die ich von FaultException erhalten konnte, ist "Ausnahme vom Typ" Microsoft.SharePoint.SoapServer.SoapServerException "wurde" nichts anderes "geworfen.

Bitte beachten Sie, dass ich keine Kontrolle über den Web-Service habe.

    
Shamika 16.12.2009, 04:34
quelle

2 Antworten

24

Nachdem ich etwas mehr Zeit damit verbracht habe, eine Lösung zu finden, können Sie mit folgendem Code-Segment auf die Ausnahmemeldung zugreifen:

%Vor%

Vielen Dank für Ihre Antworten.

    
Shamika 16.12.2009, 07:34
quelle
2

Web Services verwenden keine direkten Ausnahmen. Stattdessen geben sie Fehler zurück. Die WSDL soll die möglichen Fehler zusammen mit dem Inhalt des Elements <detail/> beschreiben. Sie müssen sich die WSDL ansehen, um festzustellen, welcher Fehler an Sie zurückgegeben wird.

Wenn der Fehler SharePointFault heißt, übersetzt WCF dies in eine Ausnahme namens FaultException<SharePointFault> . Diese Ausnahme wird wahrscheinlich Eigenschaften für errorstring und errorcode haben. Sie sollten diese Eigenschaften verwenden können, um die in der Fehlernachricht gesendeten Werte abzurufen.

    
John Saunders 16.12.2009 04:57
quelle

Tags und Links