Когда использовать WCF Fault Exception - PullRequest
5 голосов
/ 01 апреля 2011

У меня есть простая служба WCF, которая выполняет простую операцию:

[OperationContract]
DoSomething (Stuff input);

Если исключение происходит внутри DoSomething, то возвращается FaultException.Учитывая, что все, что нужно знать клиенту, это то, что что-то пошло не так, вы бы сказали, что нет необходимости определять FaultException в этом сценарии?

1 Ответ

4 голосов
/ 01 апреля 2011

Всегда рекомендуется возвращать FaultException, так как если вы этого не сделаете, канал будет поврежден и не сможет использоваться снова.

Решение о том, какую информацию необходимо отправить клиенту, принимается в конфигурации (в поведении службы):

         <serviceBehaviors>
                <behavior name="myName">
                     <serviceDebug includeExceptionDetailInFaults="true" />
       // ....

Фактически я всегда реализую IErrorHandler поведение службы перехватывать все исключения и возвращать FaultException<T>, чтобы мне не приходилось делать это во всех моих операциях.

...