Мы пытаемся реализовать клиент, который подключается к серверу с использованием SOAP.
Мы используем файл WSDL для генерации клиентского класса с помощью svcutil.
Пока мне удалось заставить работать сообщение настолько, чтобы отправить сообщение и получить ответ. Однако среда, получающая команду, отказывается принимать ответ, потому что клиент добавил какое-то пространство имен и имя-службы (я думаю) в действие.
Я отправляю команду с заголовком SOAP Действие : /GetMyTransaction
из файла WSDL , и в этой команде WSDL говорится, что ожидается ReplyAction должно быть /GetMyTransactionResponse
.
Однако в ответе Действие установлено на urn://foo/bar/:someService:GetMyTransactionResponse
. Теперь я не экспортирую SOAP, поэтому не знаю, может ли это быть правильным ответом. Он содержит правильное действие , но также содержит другие элементы. Кроме того, сгенерированный файл не принимает другое действие .
Итак, мой вопрос : есть ли способ сообщить ServiceModel, что он принимает дополнительные данные?
Теперь есть возможность вручную отредактировать сгенерированный код и ввести полный Действие , однако этот же код должен поддерживать другие серверы, которые отвечают ожидаемым образом, поэтому я не могу просто отредактировать сгенерированный файл и вставьте расширенное действие . (Если, может быть, есть какой-то подстановочный знак, который я мог бы добавить к свойству ReplyAction в OperationContractAttribute.