Пошаговое руководство. Создание и использование веб-службы ASP.NET в Visual Web Developer

Обновлен: Ноябрь 2007

В дополнение к созданию веб-страниц Microsoft Visual Studio также позволяет создавать веб-службы, использующие ASP.NET XML. Создание веб-службы в Visual Studio похоже на создание веб-страницы. Также можно использовать средство веб-разработки Microsoft Visual Web Developer для ссылок и использовать веб-службы, находящиеся в решении Visual Web Developer, на локальном компьютере, а также в локальном или внешнем каталоге UDDI. В данном пошаговом руководстве в одном решении будет создана веб-служба, а использоваться она будет в другом решении.

В данном пошаговом руководстве рассматриваются следующие задачи:

  • Создание простой XML-веб-службы в Visual Web Developer.

  • Создание отдельного веб-узла, использующего веб-службу.

Обязательные компоненты

Для выполнения заданий данного пошагового руководства требуется:

  • Службы Microsoft Internet Information Services (IIS), установленные локально на компьютере.

Создание веб-службы в корне IIS

Создайте новую веб-службу и страницу, выполнив следующие действия.

8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

Для данного пошагового руководства необходимо использовать веб-узел IIS.

Чтобы создать веб-службу, выполните следующие действия:

  1. Откройте Visual Web Developer.

  2. В меню Файл выберите команду Создать веб-узел.

    Откроется диалоговое окно Создать веб-узел.

  3. В группе Установленные шаблоны Visual Studio выберите Веб-служба ASP.NET.

  4. Нажмите кнопку Обзор.

  5. Выберите Локальный веб-сервер IIS.

  6. Щелкните Веб-узел по умолчанию.

  7. Щелкните Создать новое веб-приложение.

    Visual Web Developer создаст новое веб-приложение IIS.

  8. Введите имя TemperatureWebService.

  9. Нажмите кнопку Открыть.

    Откроется диалоговое окно Создать веб-узел с именем нового веб-узла в самом правом списке Расположение. Расположение включает протокол (http://) и местоположение (localhost). Это означает, что работа выполняется с локальным веб-узлом IIS.

  10. В списке Язык выберите предпочитаемый язык программирования.

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

  11. Нажмите кнопку OК.

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

  12. Закройте класс Service.

Создание веб-службы

Предстоит создать веб-службу, которая преобразует температуру по шкале Фаренгейта в температуру по шкале Цельсия и наоборот.

Чтобы создать веб-службу, выполните следующие действия:

  1. В обозревателе решений щелкните правой кнопкой мыши имя веб-узла (https://localhost/TemperatureWebService), а затем выберите команду Добавить новый элемент.

  2. В группе Установленные шаблоны Visual Studio выберите Веб-служба и в поле Имя введите Convert.

  3. Убедитесь, что установлен флажок Размещать код в отдельном файле и нажмите кнопку Добавить.

    Visual Web Developer создаст новую веб-службу, состоящую из двух файлов. Файл Convert.asmx является файлом, который может быть вызван для вызова методов веб-службы, и он указывает на код для веб-службы. Сам код находится в файле класса (Convert.vb, CONVERT.cs или CONVERT.jsl, в зависимости от языка программирования) в папке App_Code. Файл кода содержит шаблон для веб-службы. Файл кода включает некоторый код для метода веб-службы.

В данном примере будет создано два метода в одной веб-службе. Первый метод преобразует температуру по шкале Фаренгейта в температуру по шкале Цельсия, а второй метод преобразует температуру по шкале Цельсия в температуру по шкале Фаренгейта.

Чтобы создать методы преобразования, выполните следующие действия:

  1. Добавьте следующий код в класс сразу после метода HelloWorld:

        <System.Web.Services.WebMethod()> _
    Public Function FahrenheitToCelsius(ByVal Fahrenheit As Double) _
            As Double
            Return ((Fahrenheit - 32) * 5) / 9
        End Function
    
        <System.Web.Services.WebMethod()> _
            Public Function CelsiusToFahrenheit(ByVal Celsius As Double) _
                As Double
            Return ((Celsius * 9) / 5) + 32
        End Function
    
    [System.Web.Services.WebMethod()]
    public double FahrenheitToCelsius(double Fahrenheit)
    {
        return ((Fahrenheit - 32) * 5) / 9;
    }
    
    [System.Web.Services.WebMethod()]
    public double CelsiusToFahrenheit(double Celsius)
    {
        return ((Celsius * 9) / 5) + 32;
    }
    

    Обратите внимание, что имена функций предваряются атрибутом ([System.Web.Services.WebMethod()] или <System.Web.Services.WebMethod()>) как часть объявления функции.

  2. После ввода функций сохраните файл.

Теперь можно протестировать веб-службу в Visual Web Developer.

Чтобы протестировать веб-службу, выполните следующие действия:

  1. В обозревателе решений выберите Convert.asmx и нажмите клавиши CTRL+F5.

    Будет вызвана веб-служба и в обозревателе появится страница, отображающая методы, предоставляемые веб-службой.

  2. Нажмите кнопку CelsiusToFahrenheit, которая вызывает этот метод.

    Появится страница, которая запросит значения параметров для метода CelsiusToFahrenheit.

  3. В поле Celsius введите 100 и нажмите кнопку Invoke.

    Новое окно отображает XML-данные, возвращаемые веб-службой при вызове метода CelsiusToFahrenheit. Значение 212 отображается в XML.

  4. Закройте обозреватель, содержащий результаты метода.

  5. В исходном обозревателе нажмите кнопку Назад, чтобы вернуться к списку методов.

  6. Нажмите FahrenheitToCelsius и убедитесь, что метод возвращает ожидаемый результат.

    Если ввести 212, метод FahrenheitToCelsius вернет 100.

  7. Закройте обозреватель.

После окончания создания веб-службы, следующим шагом является ее использование.

Использование веб-службы

Теперь, когда веб-служба создана, предстоит создать веб-узел, в котором будет использоваться созданная веб-служба. Необходимо создать отдельный веб-узел со страницей, из которой будут запускаться только что созданные методы веб-службы.

Чтобы создать веб-узел для использования веб-службы, выполните следующие действия:

  1. В меню Файл выберите команду Создать веб-узел.

  2. В группе Установленные шаблоны Visual Studio выберите Веб-узел ASP.NET.

  3. Нажмите кнопку Обзор.

  4. Выберите Локальный веб-сервер IIS.

  5. Щелкните Веб-узел по умолчанию.

  6. Щелкните Создать новое веб-приложение.

    Visual Web Developer создаст новое веб-приложение IIS.

  7. Введите имя TemperatureWeb.

  8. Нажмите кнопку Открыть.

  9. В списке Язык выберите предпочитаемый язык программирования.

  10. Нажмите кнопку OК.

    Visual Web Developer создаст новый локальный веб-узел IIS и новую страницу с именем Default.aspx.

Добавление веб-службы в виде компонента

Веб-служба является компонентом, на который можно ссылаться в приложении. Следовательно, необходимо создать ссылку на него.

Для создания ссылки на веб-службу, выполните следующие действия:

  1. В меню Веб-узел выберите команду Добавитьвеб-ссылку.

    Откроется диалоговое окно Добавление веб-ссылки, как показано на следующем снимке экрана.

    диалоговое окно "Добавление веб-ссылки"
    Диалоговое окно “Добавить веб-ссылку”

  2. В списке URL-адреса введите следующий URL-адрес для веб-службы и нажмите кнопку Переход:

    https://localhost/TemperatureWebService/Convert.asmx

    Когда Visual Web Developer находит веб-службу, сведения о веб-службе отображаются в диалоговом окне Добавление веб-ссылки.

    8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

    Если не удается добавить ссылку на веб-службу, возможно, что прокси-сервер настроен неправильно. В Microsoft Internet Explorer, в меню Сервис выберите пункт Свойства обозревателя, выберите вкладку Подключения и затем нажмите кнопку Параметры LAN. Установите флажок Не использовать прокси-сервер для локальных адресов. Кроме того, задайте в поле для адреса прокси-сервера точное имя прокси-сервера, вместо разрешения Internet Explorer самостоятельно обнаруживать прокси-сервер. Для получения дополнительных сведений обратитесь к администратору сети.

  3. Выберите одну из ссылок метода.

    Откроется страница тестирования для метода.

  4. Нажмите кнопку Добавить ссылку.

    Visual Web Developer создает папку App_WebReferences и добавляет в нее папку для новой веб-ссылки. По умолчанию для веб-ссылок назначаются пространства имен, соответствующее имени их сервера (в данном случае localhost). Запишите имя для пространства имен веб-ссылки. Visual Web Developer добавляет в папку WSDL-файл, который ссылается на веб-службу. Он также добавляет вспомогательные файлы, такие как файлы обнаружения (файлы с расширениями DISKO и DISKOMAP), содержащие сведения о расположении веб-службы.

    8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

    Если имя сервера для веб-службы содержит символы, которые нельзя использовать для имени класса, такие как дефис (-), Visual Web Developer преобразует эти символы в символ подчеркивания (_). Таким образом, пространство имен в Visual Web Developer для веб-службы может не совпадать с именем сервера.

Теперь можно использовать веб-службу. В данном пошаговом руководстве предстоит добавить элементы управления в файл default.aspx и затем запрограммировать их для преобразования указанной температуры в градусы по шкале Фаренгейта и Цельсия. При выполнении страницы, она будет выглядеть примерно так, как показано на рисунке.

Страница преобразования температуры
Снимок экрана VenusWebServicesWalkthroughConsumePage

Чтобы вызвать методы веб-службы, выполните следующие действия:

  1. Откройте страницу Default.aspx и переключитесь в представление конструирования.

  2. Из группы Стандартные в панели элементов перетащите следующие элементы управления на страницу и задайте их свойства, как показано в следующей таблице:

    Элемент управления

    Свойства

    Textbox

    ID: TemperatureTextbox

    Text: (пустой)

    Button

    ID: ConvertButton

    Text: Convert

    Label

    ID: FahrenheitLabel

    Text: (пустой)

    Label

    ID: CelsiusLabel

    Text: (пустой)

  3. При необходимости добавьте на страницу текст заголовка.

    Для данного пошагового руководства макет страницы не имеет значения.

  4. Дважды щелкните на ConvertButton, чтобы создать обработчик для его события Click.

  5. Убедитесь, что код обработчика событий соответствует коду в следующем примере.

    Dim wsConvert As New localhost.Convert()
    Dim temperature As Double
    temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
    FahrenheitLabel.Text = "Fahrenheit To Celsius = " & _
        wsConvert.FahrenheitToCelsius(temperature).ToString()
    CelsiusLabel.Text = "Celsius To Fahrenheit = " & _
        wsConvert.CelsiusToFahrenheit(temperature).ToString()
    
    protected void ConvertButton_Click(object sender, EventArgs e)
    {
        localhost.Convert wsConvert = new localhost.Convert();
        double temperature =
            System.Convert.ToDouble(TemperatureTextbox.Text);
        FahrenheitLabel.Text = "Fahrenheit To Celsius = " +
            wsConvert.FahrenheitToCelsius(temperature).ToString();
        CelsiusLabel.Text = "Celsius To Fahrenheit = " +
            wsConvert.CelsiusToFahrenheit(temperature).ToString();
    }
    
  6. Нажмите клавиши CTRL+F5 для запуска страницы.

  7. В текстовом поле введите значение, например 100, и нажмите кнопку Преобразовать.

    На странице отображается результат преобразования значения температуры по шкале Фаренгейта и Цельсия.

Отладка веб-службы

Отладку веб-службы можно выполнить так же, как отладку веб-страниц.

8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

Выпуск Visual Web Developer, экспресс-выпуск и Visual Studio Standard Edition не поддерживает пошаговое выполнение с заходом в веб-службу из страницы, которая ссылается на нее. Если используется экспресс-выпуск Visual Web Developer или выпуск Visual Studio Standard Edition, пропустите этот и следующий подраздел. Дополнительные сведения об отладке веб-узлов см. в разделе Пошаговое руководство. Отладка веб-страниц в Visual Web Developer.

Сначала необходимо настроить веб-узел, содержащий веб-службу, для включения отладки.

Чтобы включить отладку на веб-узле веб-службы, выполните следующие действия:

  1. В меню Файл выберите пункт Открыть веб-узел.

  2. Выберите Локальный веб-сервер IIS.

  3. Нажмите кнопку TemperatureWebService и нажмите кнопку Открыть.

  4. В меню Веб-узел выберите пункт Конфигурация ASP.NET, чтобы открыть средство администрирования веб-узла.

    8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

    Если средство администрирования веб-узла запускается впервые, может произойти задержка до его открытия.

  5. Нажмите кнопку Приложение, а затем нажмите кнопку Конфигурация приложения.

  6. В группе Отладка и трассировка щелкните Настройка отладки и трассировки.

  7. Установите флажок Включить отладку.

    Средство администрирования веб-узла создаст файл Web.config для веб-узла и установит параметры конфигурации для включения отладки.

    8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

    Чтобы просмотреть файл Web.config в обозревателе решений, щелкните имя веб-узла и затем в панели инструментов обозревателя решений нажмите Обновить.

  8. Закройте Средство администрирования веб-узла.

Теперь необходимо включить отладку для веб-узла, использующего веб-службу.

Чтобы включить отладку на веб-узле, выполните следующие действия:

  1. Откройте узел TemperatureWeb.

  2. В меню Веб-узел выберите пункт Конфигурация ASP.NET, чтобы открыть средство администрирования веб-узла.

  3. Нажмите кнопку Приложение затем выберите Конфигурация приложения, в Отладке и трассировке выберите Настройка отладки и трассировки, затем выберите флажок Разрешить отладку.

  4. Закройте средство администрирования веб-узла.

    8wbhsy70.alert_note(ru-ru,VS.90).gifПримечание.

    Чтобы просмотреть файл Web.config в обозревателе решений, выберите имя веб-узла, затем в панели инструментов обозревателя решений нажмите Обновить.

  5. В обозревателе решений щелкните правой кнопкой мыши Default.aspx и выберите Просмотреть код.

    Visual Web Developer откроет файл кода для страницы.

  6. Поместите указатель в следующей строке:

    temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
    
    double temperature =
        System.Convert.ToDouble(TemperatureTextbox.Text);
    
  7. Нажмите клавишу F9, чтобы задать точку останова в строке.

Тестирование отладки

Веб-узел и веб-служба настроены для отладки и теперь можно попробовать выполнить отладку. Необходимо запустить в странице Default.aspx и пошагово выполнять код до тех пор, пока код вызовет веб-службу. Отладчик переключится на веб-службу и продолжит пошаговое выполнение кода.

Чтобы выполнить отладку страницы и веб-службы, выполните следующие действия:

  1. Нажмите клавишу F5, чтобы запустить страницу Default.aspx с отладкой.

    Страница откроется в веб-обозревателе.

  2. В поле введите значение, например, 100 и нажмите кнопку Преобразовать.

    Visual Web Developer запускает выполнение кода для страницы, но останавливается и выделяет строку, с точкой останова на ней.

  3. Нажмите клавишу F11, чтобы перейти на следующую строку.

  4. Снова нажмите клавишу F11.

    Поскольку следующая строка вызывает веб-службу, отладчик заходит в веб-службу и останавливается в первой строке метода FahrenheitToCelsius.

  5. Продолжайте нажимать клавишу F11.

    Отладчик проходит через остальную часть метода и возвращается к странице вызова. Если продолжить пошаговое выполнение, отладчик снова зайдет в веб-службу и в метод CelsiusToFahrenheit.

  6. Закройте обозреватель (отладчик закроется тоже).

Следующие действия

В данном пошаговом руководстве показаны основные принципы создания очень простой веб-службы и ее использования в приложении ASP.NET. Возможно разработчику захочется поэкспериментировать с дополнительными, более сложными возможностями веб-служб. Рекомендации для дополнительных исследований:

См. также

Задачи

Пошаговое руководство. Отладка веб-страниц в Visual Web Developer

Основные понятия

Design Guidelines for XML Web Services Created Using ASP.NET

Securing XML Web Services Created Using ASP.NET

Ссылки

Директива @ WebService в веб-службах XML

Другие ресурсы

<webServices> Element

XML Web Services Using ASP.NET