IErrorhandler не возвращается клиенту

Я пытаюсь реализовать IErrorhandler что оказывается настоящей болью!

У меня есть метод provideFault из IErrorhandler интерфейс вроде так...

    public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
    {
        FaultException<ServiceFault> faultException = ServiceMethods.BuildFaultException<ServiceFault>("Provide Fault Error", error.Message);
        MessageFault messageFault = faultException.CreateMessageFault();

        fault = Message.CreateMessage(version, messageFault, faultException.Action);
    }

Если мои сервисные операции попадают в исключение, он попадает в этот метод для создания FaultException, Моя проблема в том, что клиент не получает это FaultException вернулся к ним.

Я что-то упускаю здесь очевидное?

заранее спасибо

2 ответа

Если вы не видите FaultException<ServiceFault> на стороне клиента, дважды проверьте, что вы не пропустили контракт на обслуживание:

[ServiceContract]
public interface IHelloService
{
    [OperationContract]
    [FaultContract(typeof(ServiceFault))]
    void DoWork();
}

У меня небольшой опыт работы с WCF, но я думаю, что вы просто создаете сообщение, а не отправляете его через запрос или ответ. Я думаю, что по этой причине ваш клиент не получает сообщение с исключением.

Вы реализовали метод HandleError интерфейса IErrorHandler?

Ваш вопрос похож на эти вопросы, уже задаваемые в SO:

Может быть, они могут помочь вам.

Читайте также эту ветку в MSDN.

Другие вопросы по тегам