Я пытаюсь использовать существующий веб-сервис другой компании, и у меня возникают проблемы с поиском решения использовать один и тот же веб-сервис в другом месте.
Существующий веб-сервис доступен по адресу http://url.to.A/webservice/
и я могу сгенерировать прокси-класс C ++ для этого сервиса, используя sproxy.exe
от Инструменты ATL.
Используя этот класс, я могу без проблем использовать веб-сервис.
Теперь мне нужно использовать тот же веб-сервис, но с другого URL (скажем, http://url.to.B/webservice/
) и ранее созданный прокси-класс не работает. SendRequest
Метод внутри одного из методов прокси всегда возвращает ошибочный HRESULT
код. Генерация нового прокси специально для этого второго сервиса дает работающее решение.
Когда я говорю, что услуги одинаковы, я имею в виду, что они предоставляют одни и те же методы, чтобы их wsdl
файлы определений отличаются только URL службы.
Я пытался изменить URL
свойство сгенерированного экземпляра прокси-класса, но это не помогает.
Учитывая, что я связан с использованием неуправляемого C ++ для потребляющей части и что я хотел бы иметь возможность указывать конечную точку службы во время выполнения, есть ли жизнеспособное решение моей проблемы?
Спасибо за вашу помощь.
Создайте отдельный прокси-класс для каждого сервера / службы.
Затем выполните diff для сгенерированного кода. Это должно дать вам знать, в чем различия.
Наконец-то оказалось, что это невозможно, используя sproxy.exe
, чтобы создать класс, который может быть динамически назначен конечной точке веб-службы.