Как вызвать веб-сервис программно в asp.net

Как вызвать webservice программно в asp.net без использования веб-ссылки? Мой URL-адрес webservice продолжает меняться. Следовательно, мне нужно захватить URL-адрес во время выполнения и отобразить результаты. Пожалуйста, совет.

Ответы

Ответ 1

Вы можете изменить URL-адрес веб-ссылки во время выполнения (при условии, что на новом адресе размещен сервис с той же схемой, с которой вы первоначально использовали для создания ссылки):

MyWebService ms = new MyWebService();
ms.Url = "http://example.com/webservice.asmx";
ms.MyWebMethod();

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

Ответ 2

вам необходимо выполнить следующие шаги.

PreReq: Прежде всего, вы знаете URL-адрес веб-службы.

Решение: используйте wsdl.exe, чтобы создать прокси-класс и скомпилировать его.

wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

(имеются другие доступные ключи для wsdl. Например, для генерации VB класса, вам нужно добавить переключатель /Язык: VB)

После создания прокси-класса вы можете легко использовать код.

MyProxyClass objService = new MyProxyClass();
DateTime time = objService.GetServerTime(); //Suppose service has  method getServerTime

Ответ 3

Вы можете указать URL конечной точки как часть конструктора вашего прокси-класса на стороне клиента.

Если вам не нужно указывать его во время выполнения, его также можно установить в файле web.config.

Ответ 4

Где вы пытаетесь вызвать службу и где находится служебный файл?

Если служба находится на том же сайте. Почему бы просто не создать экземпляр имени класса из службы. Или просто создайте отдельный класс и используйте интерфейс