Если вызывающее приложение передает службе в качестве идентификатора посетителя значение 0, значит, это новый посетитель:
а следовательно, в таблицу visitors нужно добавить новую запись:
DBInsert.CommandText = "Insert Into Visitors " _
& " {DateEntered) Values (GetDateO)"
DBInsert.ExecuteNonQuery()
Из базы данных извлекается идентификатор только что добавленной записи:
DBCommand - New OleDbDataAdapter _
("Select Max(VisitorlD) as MaxID "
& "From Visitors", DBConn)
DBCommand. Fill (DSData, _
"CurrentID")
который присваивается второму параметру метода:
VisitorlD = DSData.Tables("CurrentID"). _
Rows(0).Item("MaxID")
Теперь новую запись можло добавить в таблицу Page Views:
DBInsert.CommandText = "Insert Into PageViews " _
& "(DateEntered, PageName, VisitorlD) Values (" _
& "GetDateO , '"
& PageName &"',"_
& VisitorlD & ")"
DBInsert.ExecuteNonQuery()
и в качестве результата выдать идентификатор нового посетителя:
RecordPageHit = VisitorlD
Тестирование новой Web-службы
Созданную вами Web-службу должно использовать клиентское приложение. В следующем разделе мы создадим такое приложение и свяжем его с Web-службой. А на данном этапе новую службу нужно непременно протестировать — мы должны убедиться, что она работает именно так, как ожидалось. Открыв страницу одной из созданных Web-служб, вы увидите, что IIS генерирует тестовую страницу, подобную той, что изображена на рис. Появление такой страницы при обращении к Web-службе свидетельствует об успешной компиляции ее кода.
На странице перечислены все методы, задействованные в Web-службе. Здесь вы даже можете поработать с ними. Щелкните на ссылке с именем нужного метода, а затем в открывшейся странице введите в поля данные и нажмите кнопку Invoke. Результат работы метода показан на странице, представленной на рис.

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

Результаты выполнения метода
Итак, имеет смысл сдюмощью автоматически сгенерированной IIS страницы тщательно протестировать Web-службу и лишь после этого приступать к созданию клиентского или пользовательского приложения.
Использование Web-службы
Далее речь пойдет о создании условий успешного использования Web-служб клиентом. Кроме того, в этом разделе мы рассмотрим код тестовых страниц, основанных на работе Web-служб.
Организация функционирования Web-службы
Для организации работы Web-службы в корневой папке Web-узла необходимо создать подпапку bin. В ней должен содержаться двоичный файл библиотеки DLL, обеспечивающий работу методов службы. После этого, воспользовавшись двумя утилитами командной строки, нужно создать файл класса и файл библиотеки DLL для работы Web-службы.
В окне Командная строка необходимо перейти в папку, где размещаются использующие Web-службу страницы ASP.NET. Затем следует ввести такую команду:
wsdl http://localhost/InetBooJt/C17/server/UsageTracker.asmx?WSDL
В результате будет создан файл класса, имеющий расширение cs. Вам нужно изменить указанный параметр в соответствии с реальным размещением asmx-файла на сервере. Обратите внимание, что к концу имени файла прибавляются символы 7WSDL.

Создание файла класса
Затем для Web-службы нужно создать динамически загружаемую библиотеку (DLL), для чего нам придется обратиться к программе CSC:
csc.exe /out:bin\UsageTracker.dll /t:library /r:System.XML.dll
/г:System.Web.Services.dll UsageTracker.es

Создание файла DLL
Обратите внимание на то, что имя библиотеки DLL и папку, в которую ее следует поместить, задает параметр out, а также на то, что в командной строке указывается имя файла класса UsageTracker.cs, созданного предыдущей командой.
Такую же процедуру нужно проделать и с двумя другими Web-службами, рассмотренными ранее в этой главе. Сделав это, вы сможете обращаться к методам Web-служб со страниц ASP.NET, находящихся в текущей папке.
Страница для доступа к службе Проверка данных
Код тестовой страницы Проверка данных вызывает одноименную Web-службу, с тем чтобы проверить ее работу.
Первая процедура запускается при нажатии первой кнопки ОК:
Sub SubmitBtnl_Click(Sender As Object, E As EventArgs)
Dim MyDS as New DataValidator()
IblResultl.Text = "Результат: " & MyDS.DateRange _
(txtTestDate.Text, txtStartDate.Text, txtEndDate.Text)
End Sub
Она создает экземпляр Web-службы:
Dim MyDS as New DataValidator()
|