Обработка пустых возвратов WCF Proxy - PullRequest
3 голосов
/ 18 февраля 2009

У меня есть клиентский прокси WCF, подключенный к стороннему веб-сервису. Прокси отлично работает практически со всем, кроме функции.

Эта функция прекрасно работает с прокси ASMX.

Я добавил запись трассировки службы и вижу ответ от службы, возвращающейся. Только прокси возвращает ноль.

Так что теперь я точно знаю, что прокси виноват.

Куда отсюда?

РАЗРЕШЕНИЕ Я нашел проблему. WCF менее простителен, чем прокси ASMX. Служба WSDL указывает, что возвращаемый объект назывался «данными», а фактический переданный XML-файл назывался «результатом»

Так что это была отличная погоня за гусем! Я думаю, что я потратил 4 часа на эту проблему!

1 Ответ

8 голосов
/ 18 февраля 2009

Вы можете попытаться использовать Trace Viewer для более подробного анализа сообщений WCF и получения более подробной информации при обнаружении ошибок.

В app.config (Клиент) и web.config (Сервер) вы можете добавлять блоки. Чтобы включить трассировку, просто добавьте блоки dignostics, и файлы трассировки будут сгенерированы в указанном месте при запуске приложения. Это должно позволить вам немного углубиться в проблему.

Просмотрщик трасс можно найти:

("C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ bin \ SvcTraceViewer.exe")

Информация об использовании средства просмотра трассировки:

http://msdn.microsoft.com/en-us/library/aa751795.aspx

Кроме того, что это за метод? он возвращает сложные типы или простые типы?

ДОБАВЛЕНО: Ах, извините за неверное прочтение, я не понял, что у вас нет контроля над серверной стороной. Я бы попытался обновить сервисную ссылку / прокси (вы, вероятно, уже сделали это) и проверить, изменилось ли что-нибудь.

Боюсь, WCF не делает отслеживание проблем очень простым. Можно ли предоставить сигнатуры методов для вызова, который работает, и для вызова, который не работает, чтобы мы могли видеть, какие типы данных передаются?

...