передача xml в виде строки в webservice вызывает полный сбой

63
6

Я размещаю.net webservice, написанный на С#. В одном из моих веб-методов я ожидаю несколько входящих параметров, все из которых являются строками. Последняя строка на самом деле представляет собой строку xml (я начал использовать набор данных для этого, но прочитал, что это было большое нет-нет, поэтому пошел по этому маршруту).

Xml (как строка) невероятно прост.

<FriendsArray><Friend><FriendSocialID>123456789</FriendSocialID><FriendName>Test Test</FriendName><AvatarImage>https://www.imagelocation.com</AvatarImage><FriendGender></FriendGender></Friend></FriendsArray>

С <FriendsArray> являющимся bounder, и узел <Friend> повторяется n раз. На стороне webservice я беру эту строку, сериализую ее в xml и обрабатываю данные.

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

Сценарий реального мира при вызове webservice foreign (либо посредством эмуляции, например SoapUI или XMLSpy, либо непосредственно из приложения, предназначенного для его вызова), он бомбит эту услугу. Ошибка не возвращается или пустой объект ответа, она полностью терпит неудачу и ничего не возвращает.

Второй я удаляю этот FriendArray (его необязательный код), он отлично работает.

Есть ли какая-то неотъемлемая проблема для этого, как я пытаюсь? Если да, есть ли простой альтернативный способ, который требует не большого количества перекодировки? Благодарю!

спросил(а) 2021-01-25T13:16:24+03:00 4 месяца, 2 недели назад
1
Решение
88

По-видимому, "<" и ">" зарезервированы в XML. Не знал об этом. Все, что я должен был сделать, это убежать от них < и > в строке, и теперь он отлично работает.

ответил(а) 2021-01-25T13:16:24+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема