Наш сторонний API предоставляет два разных веб-сервиса, но имеют идентичные методы и модели. Тем не менее они различаются только по URI (Путь веб-службы, Путь действия [Операционный контракт].
Итак, я решил:
Генерация кода из их wsdl с использованием VS.
Отредактируйте пространство имен, чтобы оно использовалось так же, чтобы оно было "Общим", и не используйте вместо него ссылку на службу. Я использую отредактированный код Reference.cs.
Создайте новый прокси-сервер, который будет обрабатывать правильный URI службы для использования (обернут в нее файл Reference.cs).
Теперь у меня проблема с "Method1", потому что у них разные имена действий. Исключение составляют:
"Сервер не распознал значение
Заголовок HTTP SOAPAction:
http://www.api.com/service/Method1"
Я просто заметил, что это правильное имя действия: http://www.api.com/service1/Method1
Теперь возникает вопрос, есть ли какая-либо конфигурация или поведение, которое я могу использовать для исправления имени действия для каждого метода для каждой службы?
Или, пока они продолжают добавлять контракты для каждой реализации API, я должен также продолжать добавлять контракты для каждого и просто использовать ChannelFactory для этого?
Пожалуйста, помогите, спасибо.