Проблема, связанная с использованием веб-службы php в настольном приложении c # - PullRequest
3 голосов
/ 14 января 2010

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

WebReference.TestWSDL pdl = new testingApp.WebReference.TestWSDL();
string copy = pdl.verify("testing");

выдает ошибку, когда я пытаюсь вызвать метод проверки. ошибка

Возможное несоответствие версии SOAP: пространство имен конверта http://schemas.xmlsoap.org/wsdl/ было неожиданным. Ожидая http://schemas.xmlsoap.org/soap/envelope/.

и ссылка на веб-сервис была похожа на

http://171.139.101.12/code/index.php/webservice/wsdl

1 Ответ

7 голосов
/ 14 января 2010

Ошибка, с которой вы сталкиваетесь, сообщает вам, что при вызове веб-службы вам предоставляется WSDL (язык определения веб-службы) для службы - это метаданные, которые описывают функции службы, но на самом деле их нельзя использовать для вызвать службу. Обычно вы получаете доступ к WSDL, добавляя «? Wsdl» или «wsdl» в URI службы.

Есть два элемента веб-службы, которые вы пытаетесь использовать.

Фактическая услуга существует по адресу:

http://171.139.101.12/code/index.php/webservice

Метаданные, описывающие его, которые Visual Studio через wsdl.exe использовал для генерации прокси, находится здесь:

http://171.139.101.12/code/index.php/webservice/wsdl

Вам необходимо отредактировать свойства веб-ссылки и соответствующим образом обновить адрес. Кроме того, вы можете изменить свойства переменной pdl и изменить конечную точку в коде.

...