Delen via


WCF HTTP-foutenafhandeling

Met WEB HTTP-foutafhandeling van Windows Communication Foundation (WCF) kunt u fouten retourneren uit WCF-web-HTTP-services die een HTTP-statuscode opgeven en foutdetails retourneren met dezelfde indeling als de bewerking (bijvoorbeeld XML of JSON).

WCF HTTP-foutenafhandeling

De WebFaultException klasse definieert een constructor waarmee u een HTTP-statuscode kunt opgeven. Deze statuscode wordt vervolgens geretourneerd naar de client. Een generieke versie van de WebFaultException-klasse, WebFaultException<T>, stelt u in staat om een door de gebruiker gedefinieerd type te retourneren dat informatie bevat over de fout die is opgetreden. Dit aangepaste object wordt geserialiseerd met behulp van de indeling die is opgegeven door de bewerking en wordt geretourneerd naar de client. In het volgende voorbeeld ziet u hoe u een HTTP-statuscode retourneert.

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

In het volgende voorbeeld ziet u hoe u een HTTP-statuscode en extra informatie in een door de gebruiker gedefinieerd type retourneert. MyErrorDetail is een door de gebruiker gedefinieerd type dat extra informatie bevat over de fout die is opgetreden.

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

De voorgaande code retourneert een HTTP-antwoord met de verboden statuscode en een hoofdtekst die een exemplaar van het MyErrorDetails object bevat. De indeling van het MyErrorDetails object wordt bepaald door:

Zie WCF Web HTTP-opmaak voor meer informatie over hoe deze waarden van invloed zijn op de opmaak van de bewerking.

WebFaultException is een FaultException en kan daarom worden gebruikt als het foutonderzonderingsprogrammeermodel voor services die SOAP-eindpunten en web-HTTP-eindpunten beschikbaar maken.

Zie ook