Fault Contracts
Message exchange patterns describe the direction of messages between clients and
services. Recall from Chapter 3 that request-reply, one-way, and duplex (or
callback) exchange patterns influence the service description. Specifically, the operation
description in the WSDL document for request-reply operations defines an <input> and <output> message, while one-way messages define only an <input> message and callback contracts result in only an
<output> message. Declared faults are also
documented as part of the metadata for each operation.
When exceptions occur, if they are known, they should be reported as faults instead of
letting exceptions propagate up to the service model to fault the channel. Furthermore,
known faults should be formal message contracts that describe the type of exception data
that will be reported to clients. By declaring known faults in the service contract, you can
define schema for each fault so that client applications are aware of the faults for each
operation they call and the format of those faults to gather intelligence on the problem. As
I mentioned earlier, faults are described as <fault> elements for an operation in the WSDL document. There can be more
than one per operation. WCF provides a simple way to declare faults for service operations
that ultimately feed the WSDL document.
In this section, you’ll learn how to declare fault contracts for your service operations
using the FaultContractAttribute and how to throw faults instead of ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access