Обработка ошибок WCF без контракта ошибки - PullRequest
4 голосов
/ 27 ноября 2009

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

[DataContract]
public abstract class ServiceResponse
{
    [DataMember]
    public bool Success { get; set; }

    [DataMember]
    public String StatusReason { get; set; }

}

Я хотел бы создать ErrorHandler для перехвата всех исключений, а затем я бы хотел, чтобы он возвращался к клиентскому экземпляру класса ServiceReponse со свойством Success, равным false, и StatusReason, равным «INTERNAL SERROR».

На данный момент у меня есть свой собственный класс, реализующий IErrorHandler, но я не хочу использовать FaultContract - я просто хочу вернуть клиенту обычный объект типа StatusReason. Можно ли это сделать?

Ответы [ 3 ]

4 голосов
/ 27 ноября 2009

Вам нужен договор о неисправности, чтобы отправить причину, попробуйте это:

   MyException fault = new MyException("Error message");
   throw new FaultException<MyException>(fault, new FaultReason("Reason Text"));
2 голосов
/ 30 ноября 2009

Вы можете добавить

 <serviceDebug includeExceptionDetailInFaults="true"/>

К вашему разделу поведения сервисов, но на самом деле он не самый лучший для производственной среды.

2 голосов
/ 27 ноября 2009
...