Развертывание веб-службы в IIS? - PullRequest
4 голосов
/ 20 января 2011

Я начал изучать веб-сервисы.Я узнал о веб-сервисах, UDDI, WSDL, SOAP и т. Д. И архитектуре веб-сервисов.Visual Studio успешно запускает службу в локальной системе.

Затем я развернул всю папку этой веб-службы в IIS wwwroot и протестировал.Он успешно работает.

Но когда я удаляю другой файл из папки wwwroot \ webService1 (я оставил только service1.asmx и bin папка), тогда также служба запущена.

Здесь я вижу, что для работы веб-службы используются только два файла: один .asmx , а другой * webService.dll в папке bin .

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

Пожалуйста, уточните.

Ответы [ 4 ]

6 голосов
/ 20 января 2011

SOAP, WSDL, пространство имен обрабатываются IIS и ASP.NET. В вашем сценарии конечной точкой веб-службы является ваш файл asmx (файл .cs не требуется для вашего развертывания), а библиотека DLL в папке bin содержит код, который вы написали для своего веб-сервиса (поэтому он что-то делает).

Если вы вызываете свой веб-сервис в веб-браузере, вы должны увидеть список ваших веб-методов для тестирования. IIS знает, как обрабатывать файлы * .asmx для этого. Если вы нажмете одну, вы должны увидеть образец формы (если ожидаются входные параметры) и кнопку Опять же, IIS знает, как предоставить вам это. Когда вы нажимаете кнопку, IIS и ASP.NET обрабатывают SOAP-обработку вашего запроса, обрабатывают его вместе с вашим кодом и SOAP-ответ возвращают вам.

Если вы создаете «тестовый» проект в Visual Studio и устанавливаете ссылку на веб-службу, которая указывает на развернутую веб-службу, Visual Studio создаст прокси-класс и извлечет дополнительный код из своего обнаружения службы. Попытайся. Вы должны получить как минимум: WSDL, который определяет ваш веб-сервис, файл с именем reference.cs , который содержит код, который выполняет тяжелую работу по вызову вашего веб-сервиса (SOAPing запрос из вашего приложения и unSOAPing из ответ).

Если вы загрузите инструмент под названием Fiddler, вы сможете перехватывать и проверять вызов SOAP для вашего веб-сервиса.

Посмотрите на Веб-службы с ASP.NET для получения дополнительной информации.

3 голосов
/ 20 января 2011

Полагаю, если вы добавите? WSDL после .asmx, вы увидите определения.Например, этот пример:

WSDL Пример

3 голосов
/ 20 января 2011

Таких «файлов» нет вообще.Файлы asmx и dll содержат весь код службы.Некоторые из них вы можете увидеть в URL, которые запрашиваются для информации SOAP / WSDL.

2 голосов
/ 20 января 2011

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

...