2015-09-14 2 views
7

Я пытаюсь потреблять SOAP веб-службы, в частности:Невозможно добавить справочная служба

http://api.affiliatewindow.com/v4/AffiliateService?wsdl

Однако - после того, как с помощью стандартного диалога WebServices добавить ссылку на службу - ни одна из операций не доступны на сгенерированные классы - это просто пустая:

Empty sadness

Я попытался изменить все различные комбинации опций на «добавить ссылку» диалога.

Есть ли другой подход к добавлению ссылок этого типа?

(примечание: для того, чтобы фактически вызвать операции, служба ожидает/заголовок имя пользователя пароль - Может быть, мне нужно включить, что в то время генерации классов Если это так - как?)

+1

Интересно, существует ли проблема с поставщиком веб-услуг? Когда я перехожу к WSDL веб-службы, которую я создал, XML появляется в браузере. Когда я перехожу к URL-адресу, опубликованному в вопросе, браузер не знает, что с ним делать, и спрашивает меня, хочу ли я открыть файл или загрузить его, а когда я сказал, что он открыт, он спросил, какое приложение я хочу использовать. – Duston

+1

Из заголовка вашего URL-адреса: «Content-Type: application/wsdl + xml» Из заголовка моего URL-адреса: «Content-Type: text/xml» – Duston

+0

Основная проблема заключается в том, что WSDL AffiliateWindow не соответствует [ WS-I Basic Profile] (http://www.ws-i.org/Profiles/BasicProfile-1.1.html), и именно поэтому VS задыхается. Диалоги «Добавить ссылку на службу» и «Добавить веб-ссылку» - и соответствующие инструменты командной строки 'svcutil' и' wsdl' - допускают причуды несколькими способами. В этом случае это выглядит так: 'wsdl.exe' может справиться с этим, как описано в ответе [Black Frog] (http://stackoverflow.com/a/32616834/55847) ниже. – LukeH

ответ

7

Я использовал Web Services Description Language Utility (Wsdl.exe) для генерации прокси-класса вручную.

wsdl http://api.affiliatewindow.com/v4/AffiliateService?wsdl /namespace:AffiliateWindow 

Мне нравится использовать пространства имен параметр, чтобы ни один из объектов не имеют конфликт с моим текущим решением.

wsdl command line

Тогда я могу добавить полученный файл кода к вашему решению. Я приложил скриншот браузера объектов из раствора:

object browser

Теперь вы можете создать экземпляр службы, как вы хотите:

// I don't know anything about Affiliate Window - but I am assuming you would use it 
// like the following code below 

AffiliateWindow.UserAuthentication auth = new AffiliateWindow.UserAuthentication(); 
auth.sType = AffiliateWindow.UserType.affiliate; 
auth.sPassword = "123456"; 

AffiliateWindow.ApiService svc = new AffiliateWindow.ApiService(); 
svc.UserAuthenticationValue = auth; 
+1

Это сработало. Ты мой герой. убедитесь, что вы используете деньги на деньги, чтобы купить что-то веселое. –

+0

..... :-) ..... –

0

Я обнаружил, что некоторые ссылки SOAP (как SalesForce) должны быть добавлены в качестве веб-ссылки вместо обычной справки по сервисам.

Когда вы щелкните правой кнопкой мыши по ссылкам, добавьте ссылку на службу, затем нажмите кнопку «Дополнительно» внизу, а затем кнопку «Добавить веб-ссылку ...» внизу.
Если вы введете допустимый URL конечной точки, он должен отобразить веб-службы, доступные для ссылок в списке в правой части диалогового окна.

+0

Не работает :( –

Смежные вопросы