2016-05-23 3 views
0

Ich verwende WCF, um eine Remote-REST-API aufzurufen, und erhalte einen 500-internen Serverfehler vom Dienst. Mit Fiddler kann ich den Körper der 500 Antwort sehen (der, in HTML begraben, den Grund für den 500 Fehler enthält). Ich möchte in der Lage sein, den Antwortkörper in .Net zu untersuchen, aber es scheint, dass der WebFaultClientMessageInspector zuerst dorthin gelangt und eine vage Ausnahme auslöst.WebFaultClientMessageInspector im WCF-Client deaktivieren?

enter image description here

Gibt es trotzdem diesen Inspektoren zu deaktivieren/außer Kraft gesetzt (und den vollständigen Antworttext sehen)?

+0

Sie verwenden versuchen und fangen? –

+0

Ja, aber die Ausnahme hat keine Informationen über die tatsächliche Nutzlast, die in der Antwort zurückkommt. – Marty

Antwort

0

Ich glaube, ich dies herausgefunden haben - ich brauche Sie eine benutzerdefinierte Nachricht Inspektor (IClientMessageInspector), aber ich brauche es auch konfigurieren FIRST in meine WCF Endpoint-Konfiguration:

<endpointBehaviors> 
    <behavior name="myCustomErrorWebHttp"> 
    <myCustomnClientBehavior /> 
    <webHttp /> 
    </behavior> 
</endpointBehaviors> 

tun dies mein Inspektor verursacht vor WebFaultClientMessageInspector ausgelöst werden, und ich konnte den Nachrichtentext überprüfen.

0

Von diesen link

Wie dieses Problem zu lösen? Die Antwort ist offensichtlich: Erstellen Sie benutzerdefinierte Implementierung IClientMessageInspector und verwenden Sie es auf dem Client.

Alle Details finden Sie im Link.

+0

Ich habe das versucht, aber es sieht aus wie WebFaultClientMessageInspector ist standardmäßig mit dem WebHttp Verhalten registriert, und es löst die Ausnahme, bevor meine benutzerdefinierte IClientMessageInspector.AfterReceiveReply eine Chance bekommt einzugreifen? Ich kann den Aufruf von BeforeSendRequest meines benutzerdefinierten Handlers durchlaufen, aber AfterReceiveReply wird nie aufgerufen (wegen der von WebFaultClientMessageInspector ausgelösten Ausnahme)., – Marty

+0

Wie wäre es, alle von WCF geworfenen nicht behandelten Ausnahmen zu fangen? Vielleicht kann das deinen Fehler auffangen. –

+0

http://johannblais.blogspot.com/2009/02/handling-exceptions-right-way-in-wcf.html –