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

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

Это поставщик веб-сервиса. Поставщик услуг реализует эту услугу и делает ее доступной в Интернете или интрасети. Мы будем писать и публиковать простой веб-сервис с помощью .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. Он будет запускать исключение во время выполнения. Теперь снова запустите веб-сервер. Он должен работать.




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

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok