Как изменить URL веб-сервиса во время выполнения при использовании библиотеки ATL?

Я пытаюсь использовать существующий веб-сервис другой компании, и у меня возникают проблемы с поиском решения использовать один и тот же веб-сервис в другом месте.

Существующий веб-сервис доступен по адресу http://url.to.A/webservice/ и я могу сгенерировать прокси-класс C ++ для этого сервиса, используя sproxy.exe от Инструменты ATL.

Используя этот класс, я могу без проблем использовать веб-сервис.

Теперь мне нужно использовать тот же веб-сервис, но с другого URL (скажем, http://url.to.B/webservice/) и ранее созданный прокси-класс не работает. SendRequest Метод внутри одного из методов прокси всегда возвращает ошибочный HRESULT код. Генерация нового прокси специально для этого второго сервиса дает работающее решение.

Когда я говорю, что услуги одинаковы, я имею в виду, что они предоставляют одни и те же методы, чтобы их wsdl файлы определений отличаются только URL службы.

Я пытался изменить URL свойство сгенерированного экземпляра прокси-класса, но это не помогает.

Учитывая, что я связан с использованием неуправляемого C ++ для потребляющей части и что я хотел бы иметь возможность указывать конечную точку службы во время выполнения, есть ли жизнеспособное решение моей проблемы?

Спасибо за вашу помощь.

0

Решение

Создайте отдельный прокси-класс для каждого сервера / службы.

Затем выполните diff для сгенерированного кода. Это должно дать вам знать, в чем различия.

1

Другие решения

Наконец-то оказалось, что это невозможно, используя sproxy.exe, чтобы создать класс, который может быть динамически назначен конечной точке веб-службы.

0

По вопросам рекламы [email protected]