WCF-foutafhandeling
De fouten die zijn opgetreden door een WCF-toepassing behoren tot een van de drie groepen:
Communicatiefouten
Proxy-/kanaalfouten
Fouten voor app
Communicatiefouten treden op wanneer een netwerk niet beschikbaar is, een client een onjuist adres gebruikt of de servicehost luistert niet naar binnenkomende berichten. Fouten van dit type worden geretourneerd naar de client als CommunicationException of CommunicationException-afgeleide klassen.
Proxy-/kanaalfouten zijn fouten die optreden in het kanaal of de proxy zelf. Fouten van dit type zijn: het gebruik van een proxy of kanaal dat is gesloten, een contract komt niet overeen tussen de client en de service, of de referenties van de client worden geweigerd door de service. Er zijn veel verschillende soorten fouten in deze categorie, te veel om hier te vermelden. Fouten van dit type worden naar de client geretourneerd (er wordt geen transformatie uitgevoerd op de uitzonderingsobjecten).
Toepassingsfouten treden op tijdens de uitvoering van een servicebewerking. Fouten van dit type worden als of FaultException<TDetail>naar de client FaultException verzonden.
Foutafhandeling in WCF wordt uitgevoerd door een of meer van de volgende:
Rechtstreeks omgaan met de uitzondering die is opgetreden. Dit wordt alleen gedaan voor communicatie- en proxy-/kanaalfouten.
Foutcontracten gebruiken
IErrorHandler De interface implementeren
Gebeurtenissen verwerken ServiceHost
Foutcontracten
Met foutcontracten kunt u de fouten definiƫren die kunnen optreden tijdens de servicebewerking op een platformonafhankelijke manier. Standaard worden alle uitzonderingen die zijn gegenereerd vanuit een servicebewerking, als object FaultException naar de client geretourneerd. Het FaultException object bevat zeer weinig informatie. U kunt de informatie beheren die naar de client wordt verzonden door een foutcontract te definiƫren en de fout als een FaultException<TDetail>fout te retourneren. Zie Opgeven en afhandelen van fouten in contracten en services voor meer informatie.
IErrorHandler
Met de IErrorHandler interface hebt u meer controle over hoe uw WCF-toepassing reageert op fouten. Het geeft u volledige controle over het foutbericht dat wordt geretourneerd naar de client en stelt u in staat om aangepaste foutverwerking zoals logboekregistratie uit te voeren. Voor meer informatie over en uitbreiding van controle over IErrorHandler foutafhandeling en rapportage
ServiceHost-gebeurtenissen
De ServiceHost klasse host services en definieert verschillende gebeurtenissen die mogelijk nodig zijn voor het afhandelen van fouten. Voorbeeld:
Zie ServiceHost voor meer informatie