Megosztás a következőn keresztül:


WCF-hibakezelés

A WCF-alkalmazások által észlelt hibák három csoport egyikéhez tartoznak:

  1. Kommunikációs hibák

  2. Proxy-/csatornahibák

  3. Alkalmazáshibák

Kommunikációs hibák akkor fordulnak elő, ha egy hálózat nem érhető el, az ügyfél helytelen címet használ, vagy a szolgáltatás gazdagépe nem figyeli a bejövő üzeneteket. Az ilyen típusú hibákat a rendszer -származtatott osztályként vagy CommunicationException-származtatott osztályként CommunicationException adja vissza az ügyfélnek.

A proxy-/csatornahibák olyan hibák, amelyek a csatornán vagy a proxyn belül fordulnak elő. Az ilyen típusú hibák közé tartoznak a következők: bezárt proxy vagy csatorna használata, az ügyfél és a szolgáltatás közötti szerződési eltérés, vagy az ügyfél hitelesítő adatait a szolgáltatás elutasítja. Ebben a kategóriában sok különböző típusú hiba van, túl sok a listához. Az ilyen típusú hibákat a rendszer az ügyfélnek adja vissza (a kivételobjektumokon nem történik átalakítás).

A szolgáltatásművelet végrehajtása során alkalmazáshibák lépnek fel. Az ilyen típusú hibákat a rendszer elküldi az ügyfélnek FaultExceptionFaultException<TDetail>.

A WCF-ben a hibakezelést az alábbiak közül egy vagy több hajtja végre:

  • A kidobott kivétel közvetlen kezelése. Ez csak kommunikációs és proxy-/csatornahibák esetén történik.

  • Hibaszerződések használata

  • Az interfész implementálása IErrorHandler

  • Események kezelése ServiceHost

Tartalék szerződések

A hibaszerződésekkel platformfüggetlen módon határozhatja meg a szolgáltatás működése során előforduló hibákat. Alapértelmezés szerint a szolgáltatásműveletből származó összes kivételt objektumként FaultException adja vissza az ügyfélnek. Az FaultException objektum nagyon kevés információt tartalmaz. A hibaszerződés meghatározásával és a hiba FaultException<TDetail>visszaadásával szabályozhatja az ügyfélnek küldött információkat. További információ: Szerződések és szolgáltatások hibáinak megadása és kezelése.

IErrorHandler

A IErrorHandler felület lehetővé teszi, hogy jobban szabályozhassa, hogyan reagál a WCF-alkalmazás a hibákra. Teljes körű vezérlést biztosít az ügyfélnek visszaadott hibaüzenet felett, és lehetővé teszi egyéni hibafeldolgozás, például a naplózás végrehajtását. További információ a hibakezelés és a jelentéskészítés vezérlésének kibővítéséről IErrorHandler

ServiceHost-események

Az ServiceHost osztály szolgáltatásokat üzemeltet, és több olyan eseményt határoz meg, amelyekre szükség lehet a hibák kezeléséhez. Példa:

  1. Faulted

  2. UnknownMessageReceived

További információ: ServiceHost