У меня раньше была похожая проблема, это было связано с тем, как svcutil.exe генерировал DataContracts для операций.
В моем клиентском интерфейсе (reference.vb или .cs, если C #,если вы не используете svcutil через командную строку для генерации прокси-класса), я должен был установить действие ответа от:
<System.ServiceModel.OperationContractAttribute(Action:="", ReplyAction:="*")
на фактическое действие или, по крайней мере, то, что я думал, http://tempuri.org/MyInterfaceName/MyMethodName
<System.ServiceModel.OperationContractAttribute(Action:="", ReplyAction:="http://tempuri.org/MyInterfaceName/MyMethodName")
Затем мне пришлось удалить XmlTypeAttribute из класса ответа, объект был отправлен обратно клиенту:
System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true, [Namespace]:="https://example.com?wsdl")>
, а также удалить атрибуты XmlElementAttributes из свойств в классе ответа:
<System.Xml.Serialization.XmlElementAttribute(Order:=0)>
Не уверен, применимо ли это к вашему сценарию, но я совершенно уверен, что ваша проблема как-то связана с тем, как контракты данных форматируются VS.