Книга: Обработка баз данных на Visual Basic®.NET

Публикация существующего компонента с помощью Web-службы

Публикация существующего компонента с помощью Web-службы

В большинстве случаев для публикации функций существующего компонента с помощью Web-службы достаточно поместить соответствующий код в Web-службе в виде открытого метода с возвращаемым значением. Например, для публикации с помощью Web-службы метода GetRowCount класса GetRowCount из предыдущего примера выполните перечисленные ниже действия.

1. В проекте Novelty1 создайте новую Web-службу NoveltyServices.asmx.

НА ЗАМЕТКУ

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

2. В файле NoveltyServices.asmx вставьте код нового Web-метода ShowGetRowCount, который приведен в листинге 12.8.

3. Добавьте в тело метода ShowGetRowCount три строки кода, как показано в листинге 12.8.

4. Щелкните правой кнопкой мыши на имени решения в окне Solution Explorer и выберите в контекстном меню команду Build для компоновки решения.

5. После компоновки решения щелкните правой кнопкой мыши на файле NoveltyServices.asmx и выберите в контекстном меню команду View in Browser (Просмотр в окне Web-броузера).

6. Сразу после загрузки Web-страницы полученной Web-службы NoveltyServices щелкните на гипертекстовой ссылке ShowGetRowCount в верхней части Web-страницы.

7. Убедитесь в правильности полученных результатов. (Сначала в окне Web-броузера появится описание данной Web-службы с предложением проверить ее работоспособность, щелкнув на кнопке Invoke (Вызвать Web-службу). Щелкните на этой кнопке, и в окне Web-броузера появится XML-файл с приведенными ниже строками.

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://localhost/">2000</int>

Здесь значение 2000 типа int – это результат выполнения метода ShowGetRowCount Web-службы NoveltyServices. — Прим. ред.)

ЛИСТИНГ 12.8. Файл NoveltyServices.asmx

Imports System.Web.Services
Imports Novelty1.GetRowCount
<WebService(Namespace:="http://localhost/")> _
 Public Class NoveltyServices
 Inherits System.Web.Services.WebService
#Region " Web Services Designer Generated Code "
 Public Sub New()
  MyBase.New()
  ' Этот вызов метода организован конструктором Web-служб.
  InitializeComponent()
  ' Инициализация после вызова метода
  InitializeComponent().
 End Sub
 ' Код, созданный конструктором Web-служб.
 Private components As System.ComponentModel.IContainer
 ' ЗАМЕЧАНИЕ: Код, созданный конструктором компонентов.
 ' Его можно изменить только с помощью конструктора Web-служб.
 ' Не изменяйте его вручную в окне редактирования кода.
 <System.Diagnostics.DebuggerStepThrough()> _
  Private Sub InitializeComponent()
  components = New System.ComponentModel.Container()
 End Sub
 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  ' CODEGEN: Этот вызов метода организован конструктором Web-служб.
  ' Не изменяйте его вручную в окне редактора кода.
  If disposing Then
   If Not (components Is Nothing) Then
    components.Dispose()
   End If
  End If
  MyBase.Dispose(disposing)
 End Sub
#End Region
 <WebMethod()> Public Function ShowGetRowCount() As Integer
  ' Эти строки кода остались неизменными.
  Dim GRC As New GetRowCount()
  ShowGetRowCount = GRC.GetRowCount GRC.Dispose()
 End Function
End Class

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

Оглавление книги


Генерация: 1.449. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз