Книга: Обработка баз данных на 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-страницу и выполнить указанный метод. Обычно эта цель достигается программными средствами, а не вручную. В следующем разделе рассматривается пример такой ситуации.
- Повышение производительности приложений с помощью хранимых процедур
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Организация пользователей в группы с помощью ролей
- Глава 8 Дополнительные службы
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Службы Windows SharePoint
- Публикация документа в библиотеке
- Обработка запросов с помощью PHP
- Формы Web ASP.NET
- Пример: базовый клиент Web
- Как с помощью компьютера подшутить над друзьями и коллегами?
- Как составить психологический портрет с помощью Сети?