Ich habe einen REST-Dienst, der von einem .Net-WCF-Client verwendet wird.Fehlerdetails von WCF-REST abrufen
Wenn ein Fehler auftritt, gibt der REST-Service eine HTTP 400 Bad Request mit dem Antworthauptteil zurück, der die serialisierten JSON-Details enthält.
Wenn ich die Anfrage mit Fiddler, Javascript oder direkt aus C# ausführen, kann ich einfach auf den Antworttext zugreifen, wenn ein Fehler auftritt.
Allerdings verwende ich eine WCF mit 6 recht komplexen Schnittstellen. Die Ausnahme, die von diesem Proxy ausgelöst wird, ist immer ein ProtocolException
, ohne nützliche Details.
Gibt es eine Möglichkeit, den Antworttext zu erhalten, wenn dieser Fehler auftritt?
aktualisiert
Mir ist klar, dass eine Last von verschiedenen Möglichkeiten gibt es, dies mit .Net zu tun, und dass es andere Möglichkeiten, um die Fehlerreaktion zu erhalten. Sie sind nützlich zu wissen, aber beantworten Sie diese Frage nicht.
Die REST-Dienste, die wir verwenden, ändern sich und wenn sie das tun, werden die komplexen Schnittstellen aktualisiert. Die Verwendung der mit den neuen Schnittstellen bedeutet, dass wir Ausnahmen zur Kompilierungszeit (statt zur Laufzeit) bekommen und diese viel einfacher pflegen und den Code aktualisieren.
Gibt es eine Möglichkeit, den Antworttext für einen Fehler HTTP-Status bei WCF-Kanälen zu erhalten?
Wenn Sie Ihre Erklärung lesen, klingt es so, als hätten Sie keine Kontrolle über den REST-Dienst selbst. Ist das korrekt? –
Eigentlich tun wir das in diesem Fall, aber es ist schwer zu ändern. Unser Problem ist Komplexität - die WCF ChannelFactory bietet eine wirklich gute Möglichkeit, dies mit Schnittstellen zu verwalten. Die lästige Sache ist, dass es den Antwortkörper wegwirft, wenn der HTTP-Header-Status etwas anderes als 200 ist. Wenn wir einen Fehler vom REST-Dienst erhalten, gibt er einen HTTP 400- oder 500-Status mit Details im Hauptteil zurück. – Keith