На основе архитектуры веб-сервиса мы создаем следующие два компонента как часть реализации веб-сервисов:

Поставщик услуг или издатель

Это поставщик веб-сервиса. Поставщик услуг реализует эту услугу и делает ее доступной в Интернете или интрасети. Мы будем писать и публиковать простой веб-сервис с помощью .NET SDK.

Провайдер услуг или потребитель

Это любой потребитель веб-службы. Запросчик использует существующий веб-сервис, открывая сетевое соединение и отправляя XML-запрос. Мы также напишем два запроса для веб-сервисов: один веб-потребитель (приложение ASP.NET) и другой потребитель на основе приложений Windows.

Ниже представлен наш первый пример веб-сервиса, который работает как поставщик услуг и предоставляет два метода (add and SayHello) в качестве веб-сервисов, которые будут использоваться приложениями. Это стандартный шаблон для веб-службы. В .NET-сервисах используется расширение .asmx. Обратите внимание, что метод, открытый как веб-служба, имеет атрибут WebMethod. Сохраните этот файл как FirstService.asmx в виртуальном каталоге IIS (как описано в настройке IIS, например, c: \ MyWebSerces).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>
 
using System;
using System.Web.Services;
using System.Xml.Serialization;
 
[WebService(Namespace="http://localhost/MyWebServices/")]
public class FirstService : WebService
{
   [WebMethod]
   public int Add(int a, int b)
   {
      return a + b;
   }
 
   [WebMethod]
   public String SayHello()
   {
   return "Hello World";
   }
}

Чтобы проверить веб-сервис, он должен быть опубликован. Веб-сервис может быть опубликован либо в интрасети, либо в Интернете. Мы опубликуем эту веб-службу в IIS, запущенной на локальной машине. Начнем с настройки IIS.

  • Открыть «Пуск» → « Настройки» → « Панель управления» → « Администрирование» → « Менеджер интернет-служб».
  • Разверните и щелкните правой кнопкой мыши веб-сайт по умолчанию; выберите «Новый» → « Виртуальный каталог». Откроется мастер создания виртуального каталога. Нажмите "Далее.
  • Откроется экран «Виртуальный каталог». Введите имя виртуального каталога. Например, MyWebServices. и нажмите «Далее».
  • Откроется экран «Каталог содержимого веб-сайта».
  • Введите имя каталога для виртуального каталога. Например, c: \ MyWebServices Нажмите «Далее».
  • Откроется экран «Разрешение доступа». Измените настройки в соответствии с вашими требованиями. Давайте сохраним настройки по умолчанию для этого упражнения.
  • Нажмите кнопку «Далее». Он завершает настройку IIS.
  • Нажмите «Готово», чтобы завершить настройку.

Чтобы проверить, правильно ли настроен IIS, скопируйте файл HTML (например, x.html) в виртуальный каталог (C: \ MyWebServices), созданный выше. Теперь откройте Internet Explorer и введите http: //localhost/MyWebServices/x.html. Он должен открыть файл x.html.

Примечание . Если это не сработает, попробуйте заменить localhost на IP-адрес вашего устройства. Если он все еще не работает, проверьте, запущен ли IIS; вам может потребоваться перенастроить IIS и виртуальный каталог.

Чтобы протестировать эту веб-службу, скопируйте FirstService.asmx в виртуальный каталог IIS, созданный выше (C: \ MyWebServices). Откройте веб-службу в Internet Explorer (http: //localhost/MyWebServices/FirstService.asmx). Он должен открыть страницу веб-сервиса. На странице должны быть ссылки на два метода, которые мы предоставляем в виде веб-сервисов нашим приложением. Поздравления! Вы написали свой первый веб-сервис!

Тестирование веб-службы

Как мы только что видели, в .NET Framework легко писать веб-сервисы. Написание веб-сервисов также легко в среде .NET; однако, это немного более активно. Как уже говорилось ранее, мы будем писать два типа потребителей услуг: один веб-сайт и другой пользователь на основе приложений Windows. Давайте напишем нашего первого потребителя веб-сервисов.

Веб-сервисы

Напишите веб-потребителя, как указано ниже. Назовите это WebApp.aspx. Обратите внимание, что это приложение ASP.NET. Сохраните это в виртуальном каталоге веб-службы (c: \ MyWebServices \ WebApp.axpx). Это приложение имеет два текстовых поля, которые используются для получения номеров от пользователя для добавления. У нее есть одна кнопка «Выполнить», которая при нажатии получает веб-службы Add и SayHello.

WebApp.axpx

<%@ Page Language="C#" %>
<script runat="server">
   void runSrvice_Click(Object sender, EventArgs e){
      FirstService mySvc = new FirstService();
      Label1.Text = mySvc.SayHello();
      Label2.Text = mySvc.Add(Int32.Parse(txtNum1.Text),  Int32.Parse(txtNum2.Text)).ToString();
   }
</script>
 
<html>
   <head> </head>
  
   <body>
      <form runat="server">
         <p>
            <em>First Number to Add </em>:
            <asp:TextBox id="txtNum1" runat="server" Width="43px">4<  /asp:TextBox>
         </p>
                                    
         <p>
            <em>Second Number To Add </em>:
            <asp:TextBox id="txtNum2" runat="server" Width="44px">5</asp:TextBox>
         </p>
                                    
         <p>
            <strong><u>Web Service Result -</u></strong>
         </p>
                                    
         <p>
            <em>Hello world Service</em> :
            <asp:Label id="Label1" runat="server" Font-Underline="True">Label< /asp:Label>
         </p>
 
         <p>
            <em>Add Service</em> :
            & <asp:Label id="Label2" runat="server" Font-Underline="True">Label</asp:Label>
         </p>
                                    
         <p align="left">
            <asp:Button id="runSrvice" onclick="runSrvice_Click" runat="server"  Text="Execute"></asp:Button>
         </p>
                                    
      </form>
     
   </body>
</html>

После создания потребителя нам необходимо создать прокси-сервер для использования веб-службы. Эта работа выполняется автоматически с помощью Visual Studio .NET для нас при ссылке на добавленный веб-сервис. Вот шаги, которые необходимо выполнить:

  • Создайте прокси-сервер для использования веб-службы. Прокси создается с помощью утилиты WSDL, поставляемой с .NET SDK. Эта утилита извлекает информацию из веб-службы и создает прокси-сервер. Прокси-сервер действителен только для определенной веб-службы. Если вам нужно использовать другие веб-службы, вам также необходимо создать прокси-сервер для этой службы. Visual Studio .NET автоматически создает прокси-сервер, когда добавляется ссылка на веб-службу. Создайте прокси для веб-службы с помощью утилиты WSDL, поставляемой с .NET SDK. Он создаст файл FirstSevice.cs в текущем каталоге. Нам нужно скомпилировать его для создания FirstService.dll (прокси) для веб-службы.
  • c:> WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • Поместите скомпилированный прокси в каталог bin виртуального каталога веб-службы (c: \ MyWebServices \ bin). Информационные службы Интернета IIS ищет прокси-сервер в этом каталоге.
  • Создайте потребителя услуг так же, как и мы. Обратите внимание, что объект прокси-сервера веб-службы создается у потребителя. Этот прокси-сервер заботится о взаимодействии с сервисом.
  • Введите URL-адрес потребителя в IE, чтобы проверить его (например, http: //localhost/MyWebServices/WebApp.aspx).

Потребитель веб-сервисов на основе приложений Windows

Написание приложения для веб-служб на основе приложений Windows аналогично написанию любого другого приложения Windows. Вам нужно только создать прокси-сервер (который мы уже сделали) и ссылаться на этот прокси-сервер при компиляции приложения. Ниже приведено наше приложение Windows, которое использует веб-службу. Это приложение создает объект веб-службы (конечно, прокси) и вызывает методы SayHello и Add на нем.

WinApp.cs

using System;
using System.IO;
 
namespace SvcConsumer {
   class SvcEater {
  
      public static void Main(String[] args) {
         FirstService mySvc = new FirstService();
         Console.WriteLine("Calling Hello World Service: " + mySvc.SayHello());
         Console.WriteLine("Calling Add(2, 3) Service: " + mySvc.Add(2, 3).ToString());
      }
   }
}

Скомпилируйте его с помощью c: \> csc /r:FirstService.dll WinApp.cs . Он создаст файл WinApp.exe. Запустите его, чтобы протестировать приложение и веб-службу.

Теперь возникает вопрос: как вы можете быть уверены, что это приложение действительно вызывает веб-сервис?

Это просто проверить. Остановите свой веб-сервер, чтобы с веб-службой не удалось связаться. Теперь запустите приложение WinApp. Он будет запускать исключение во время выполнения. Теперь снова запустите веб-сервер. Он должен работать.


Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!



Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok