WCF-клиент - не ловится FaultException
От: mDmitriy Россия  
Дата: 01.09.16 10:43
Оценка:
Всем привет!

Есть WCDL от стороннего сервиса, в которой в частности, прописано примерно следующее:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="OtherNamespace", ConfigurationName="OtherNamespace.IOtherInterface")]
public interface IIOtherInterface {
        
[System.ServiceModel.OperationContractAttribute(Action="OtherNamespace/OtherOperation", ReplyAction="OtherNamespace/OtherOperation/OtherResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(OtherNamespace.OtherFault), Action="OtherNamespace/IOtherInterface/OtherOperationOtherFault", Name="OtherFault", Namespace="OtherNamespace.Interface")]
OtherNamespace.OtherResponse OtherOperation(OtherNamespace.OtherRequestRequest request);

Т.е., как бы намекается, что при ошибке сервис сгенерирует и вернет исключение типа FaultException<OtherNamespace.OtherFault>
При ошибочном запросе сервис вроде возвращает то, что нужно (это видно через Fiddler) с ошибкой 500
Но на клиенте этот момент не перехватывается
try
    myClient.OtherOperation(otherRequest)
catch(Exception ex)
{
    // анализ exception
    // возвращается всегда ObjectDisposedException ("доступ к закрытому потоку невозможен") (видимо, при попытке сериализации)
    // и все
}

Под отладчиком через AppDomain.CurrentDomain.FirstChanceException можно перехватыватить WebException 2 раза, но в исполняемом коде сделать это не получается (видимо, гасится где-то внутри)
Что у меня может быть не так?
И как перехватывать ошибку 500?
Спасибо...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.