Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Błędy napotkane przez aplikację WCF należą do jednej z trzech grup:
Błędy komunikacji
Błędy serwera proxy/kanału
Błędy aplikacji
Błędy komunikacji występują, gdy sieć jest niedostępna, klient używa niepoprawnego adresu lub host usługi nie nasłuchuje przychodzących komunikatów. Błędy tego typu są zwracane do klienta jako CommunicationException lub CommunicationException-pochodne klasy.
Błędy serwera proxy/kanału to błędy występujące w kanale lub serwerze proxy. Błędy tego typu obejmują: próba użycia serwera proxy lub kanału, który został zamknięty, istnieje niezgodność kontraktu między klientem a usługą lub poświadczenia klienta są odrzucane przez usługę. Istnieje wiele różnych typów błędów w tej kategorii, zbyt wiele do wyświetlenia tutaj. Błędy tego typu są zwracane do klienta as-is (żadne przekształcenie nie jest wykonywane na obiektach wyjątku).
Błędy aplikacji występują podczas wykonywania operacji usługi. Błędy tego rodzaju są wysyłane do klienta jako FaultException lub FaultException<TDetail>.
Obsługa błędów w programie WCF jest wykonywana przez co najmniej jedną z następujących czynności:
Bezpośrednia obsługa zgłoszonych wyjątków. Odbywa się to tylko w przypadku błędów komunikacji i serwera proxy lub kanału.
Użycie kontraktów awarii
Implementowanie interfejsu IErrorHandler
Obsługa zdarzeń ServiceHost
Kontrakty błędów
Kontrakty błędów umożliwiają definiowanie błędów, które mogą wystąpić podczas operacji usługi w sposób niezależny od platformy. Domyślnie wszystkie wyjątki zgłoszone w ramach operacji usługi zostaną zwrócone klientowi jako obiekt FaultException. Obiekt FaultException będzie zawierać bardzo mało informacji. Informacje wysyłane do klienta można kontrolować, definiując kontrakt o błędzie i zwracając błąd jako FaultException<TDetail>. Aby uzyskać więcej informacji, zobacz Określanie i obsługa błędów w kontraktach i usługach.
IErrorHandler
Interfejs IErrorHandler umożliwia większą kontrolę nad sposobem reagowania aplikacji WCF na błędy. Zapewnia pełną kontrolę nad komunikatem o błędzie zwracanym do klienta i umożliwia wykonywanie niestandardowego przetwarzania błędów, takiego jak rejestrowanie. Aby uzyskać więcej informacji na temat IErrorHandler i rozszerzania kontroli nad obsługą błędów i raportowaniem
Zdarzenia ServiceHost
Klasa ServiceHost hostuje usługi i definiuje kilka zdarzeń, które mogą być potrzebne do obsługi błędów. Przykład:
Aby uzyskać więcej informacji, zobacz ServiceHost