Клиент WCF (Добавляют Сервисную Ссылку) ненавидит WebGet и WebInvoke … действительно, это делает

Я работал для создания сервисов WCF, которые будут работать независимый от клиентов .NET. Благодаря Google и StackOverflow, я смог создать и простой xml и json сервисы без оберток Мыла и набора необычного материала WCF, в котором я просто не нуждаюсь. Это был болезненный опыт, следовательно строка темы этого вопроса. WCF является безумным багги на стороне клиента при использовании WebGet и WebInvoke, автоматически добавляя сервисную ссылку.

Для осмотра коммуникации я создавал клиент WCF локально и передавал все через Скрипача. Тот путь, работает ли это или нет, я могу, по крайней мере, видеть то, что клиент пытается отправить. И когда это наконец работает, я вижу, что данные отправляются от обоих концов и затем копирую эту коммуникацию в клиенте не.NET.

Моя текущая проблема состоит в том, что, когда я изменяю сервис для ожидания данных POST как json (enableWebScript поведение), клиент понятия не имеет, и это все еще пытается отправить объекты как xml. У меня была тонна проблем с конфигурацией клиента, не автоматически устанавливаемой правильно, когда использование Добавляет Сервисную Ссылку, таким образом, я надеюсь, что это - что-то простое, которое я могу добавить к app.config на клиенте. При использовании XML объекты я создаю и использую в сервисе, автоматически xml сериализирован клиентом (который является самым удобным). Это даже возможно сделать как json в текущей версии WCF?

Нужно отметить, что я смог выяснить то, что я должен сделать вручную и получить, это для работы в необработанной форме со Скрипачом (запросите разработчика), таким образом, я могу сериализировать свои объекты в коде и отправить данные вручную с помощью сообщения http... это - то, как я делаю его в своих клиентах не.NET так или иначе. Это - больше вопроса понять аспекты WCF лучше и почему я пропускаю столько атрибутов на стороне клиента, где нет мало ни к какой документации, доступной для решения проблем.

5
задан Wim Coenen 23 October 2009 в 14:13
поделиться

2 ответа

[

] Ссылки на услугу WCF относятся к полезной нагрузке RPC, которая саморасписывается - т.е. SOAP, wsHttp и т.п. Точно так же клиенты WCF с сильными типичными номерами предназначены только для работы с полезной нагрузкой RPC, потому что только они способны транслировать всю типовую информацию и т.д., необходимую для корректной работы.[

] [

]Когда вы используете webget и webinvoke, вы создаете не rpc сервисы (предназначенные для написания REST сервисов), которые также не являются саморасписывающимися и поэтому не идеально подходят для функциональности ссылки на сервисы. [

] [

]Конечно, для этого можно написать клиент .Net - но вам будет намного проще написать его, используя WebClient/WebRequest, вручную форматируя/читая XML/Json запросы/ответы (или используйте DataContractSerializer и DataContractJsonSerializer, чтобы помочь в этом).[

].
3
ответ дан 15 December 2019 в 01:05
поделиться
[

]SOAP саморасписывается (через WSDL).[

] [

]WebGet/WebInvoke не выставляют никаких метаданных, которые подсказали бы клиенту использовать JSON вместо XML.[

].
1
ответ дан 15 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: