Исправить проблемный ответ сервера в WCF - PullRequest
0 голосов
/ 06 января 2009

Я использую WCF в качестве клиента для веб-службы Java. У меня нет контроля над серверной стороной.

В ответе, который я получаю от веб-службы, отсутствует атрибут xmlns первого элемента внутри мыльных заголовков. Из-за этого WCF возвращает нулевое значение в результате вызова веб-службы.

Помимо отсутствующих xmlns, ответ идеален, и если я добавлю xmlns с помощью fiddler, то все будет работать, как и ожидалось. Я не знаю достаточно о SOAP, чтобы знать, действительно ли требуется атрибут xmlns.

Есть ли способ избежать этой проблемы, либо заставить WCF игнорировать отсутствующий атрибут xmlns, либо даже перехватить, что позволило бы мне вручную обработать ответ, прежде чем он попадет в WCF?

1 Ответ

2 голосов
/ 05 октября 2010

Похоже, это довольно старый вопрос, поэтому я не уверен, что вы когда-нибудь обращались к нему. Если вы работаете с клиентом WCF для службы Java Axis, вы обнаружите, что вам нужно привыкнуть к использованию MessageInspectors для переопределения поведения запроса и ответа.

Используя метод AfterReceiveReply, вы сможете скопировать исходное сообщение и изменить заголовки. Также проверьте Шаг 5 из этой статьи MSDN .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...