Udostępnij za pośrednictwem


Obsługa błędów protokołu HTTP sieci Web w programie WCF

Obsługa błędów protokołu HTTP sieci Web programu Windows Communication Foundation (WCF) umożliwia zwracanie błędów z internetowych usług HTTP programu WCF, które określają kod stanu HTTP protokołu HTTP i zwracają szczegóły błędu przy użyciu tego samego formatu co operacja (na przykład XML lub JSON).

Obsługa błędów protokołu HTTP sieci Web w programie WCF

Klasa WebFaultException definiuje konstruktor, który umożliwia określenie kodu stanu HTTP. Ten kod stanu jest następnie zwracany do klienta. Ogólna wersja WebFaultException klasy WebFaultException<T> umożliwia zwrócenie typu zdefiniowanego przez użytkownika zawierającego informacje o błędzie, który wystąpił. Ten obiekt niestandardowy jest serializowany przy użyciu formatu określonego przez operację i zwracanego do klienta. W poniższym przykładzie pokazano, jak zwrócić kod stanu HTTP.

public string Operation1()
{
    // Operation logic  
   // ...
   throw new WebFaultException(HttpStatusCode.Forbidden);
}  

W poniższym przykładzie pokazano, jak zwrócić kod stanu HTTP i dodatkowe informacje w typie zdefiniowanym przez użytkownika. MyErrorDetail to typ zdefiniowany przez użytkownika, który zawiera dodatkowe informacje o błędzie, który wystąpił.

public string Operation2()
{
   // Operation logic  
   // ...
   MyErrorDetail detail = new MyErrorDetail()
   {  
      Message = "Error Message",  
      ErrorCode = 123,  
   }  
   throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);  
}  

Powyższy kod zwraca odpowiedź HTTP z kodem stanu zabronionego i treścią zawierającą wystąpienie MyErrorDetails obiektu. Format MyErrorDetails obiektu jest określany przez:

Aby uzyskać więcej informacji na temat wpływu tych wartości na formatowanie operacji, zobacz WCF Web HTTP Formatting (Formatowanie protokołu HTTP w sieci Web WCF).

WebFaultException jest elementem FaultException i dlatego może służyć jako model programowania wyjątków błędów dla usług, które uwidaczniają punkty końcowe protokołu SOAP, a także internetowe punkty końcowe HTTP.

Zobacz też