Несколько пространств имен в сообщении ошибки мыла, приводящее к сбою десериализации FaultException
Мы'повторное подключение к веб-службе и сообщение о неисправности, которое мывозвращаешься неt десериализацию (вообще), и ни одна версия класса, которую я могу сделать, не сможет правильно десериализоваться. У нас нет контроля над серверной стороной вещей. Сервер не разрешает обнаружение, поэтому добавление? WSDL в конец URL-адреса конечной точки приводит к ошибке, а не к WSDL.
[Fiddler] [1] показывает, что возвращаемое сообщение об ошибке выглядит следующим образом:
Client
SOME_ERROR
SOME_ERROR_CODE
Your request was unsuccessful. blah blah blah.
Еще нет класса мымы сделали (пробуя xsd.exe, svcutil и другие, включая код, который мынаписано с нуля) может десериализовать его, когда мы попытаемся поймать его с помощью:
catch (FaultException exp)
{
// Never stops here.
}
catch (FaultException exp)
{
// Never stops here.
}
catch (SoapException se)
{
// Never stops here.
}
catch (FaultException exp)
{
//Always gets caught here.
}
Будет вызван только базовый улов FaultException, то есть мы потеряем содержимое отправляемого сообщения FaultMessage. Некоторые из классов, которые яНаписанное будет сериализовано очень близко к приведенному выше примеру, но не сможет его десериализовать, поэтому мы подозреваем, что существует проблема с пространством имен.
Вопросы:
1 - Как бы вы написали это?
2 - Это распространенная ошибка / проблема с WCF?
[1]:http://www.fiddler2.com/fiddler2/ обманщик