Mam usługę REST używaną przez klienta .NET WCF.Uzyskiwanie szczegółów błędu z WCF REST
Po wystąpieniu błędu usługa REST zwraca nieprawidłowe żądanie HTTP 400 z treścią odpowiedzi zawierającą szeregowane informacje JSON.
Jeśli wykonam żądanie za pomocą Fiddlera, Javascript lub bezpośrednio z C#, mogę łatwo uzyskać dostęp do treści odpowiedzi, gdy wystąpi błąd.
Jednak używam WCF ChannelFactory
z 6 dość złożonymi interfejsami. Wyjątek generowany przez ten serwer proxy zawsze ma wartość ProtocolException
, bez żadnych użytecznych szczegółów.
Czy istnieje sposób na uzyskanie treści odpowiedzi, gdy pojawia się ten błąd?
Aktualizacja
Zdaję sobie sprawę, że istnieje obciążenie różnych sposobów, aby to zrobić za pomocą .NET oraz że istnieją inne sposoby, aby uzyskać odpowiedź o błędzie. Są przydatne, ale nie odpowiadają na to pytanie.
Usługi REST, których używamy, zmienią się, a gdy to zrobią, kompleksowe interfejsy zostaną zaktualizowane. Użycie interfejsu ChannelFactory
z nowymi interfejsami oznacza, że otrzymamy wyjątki czasu kompilacji (a nie czasu wykonywania) i ułatwi to konserwację i aktualizację kodu.
Czy istnieje sposób na uzyskanie treści odpowiedzi na błąd HTTP podczas korzystania z kanałów WCF?
Czytając swoje wyjaśnienie, wygląda na to, że nie masz kontroli nad samą usługą REST, czy to prawda? –
Właściwie w tym przypadku robimy, ale trudno to zmienić. Naszym problemem jest złożoność - WCF ChannelFactory daje naprawdę fajny sposób na zarządzanie nim za pomocą interfejsów. Denerwujące jest to, że odrzuca treść odpowiedzi, gdy status nagłówka HTTP jest inny niż 200. Gdy otrzymamy błąd z usługi REST, zwraca on stan HTTP 400 lub 500 ze szczegółami w treści. – Keith