VERWERKING van WCF-web-HTTP-fouten
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).
VERWERKING van WCF-web-HTTP-fouten
De WebFaultException klasse definieert een constructor waarmee u een HTTP-statuscode kunt opgeven. Deze statuscode wordt vervolgens geretourneerd naar de client. Met een algemene versie van de klasse WebFaultException<T> kunt u een door de WebFaultException gebruiker gedefinieerd type 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:
De waarde van de
ResponseFormat
parameter van het WebGetAttribute of WebInvokeAttribute kenmerk dat is opgegeven voor de servicebewerking.De waarde van AutomaticFormatSelectionEnabled.
De waarde van de Format eigenschap door toegang te krijgen tot de OutgoingWebResponseContext.
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.