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

Visual Studio 2010

ПримечаниеПримечание

Этот раздел относится к технологии прежних версий. Сейчас XML-веб-службы и клиенты XML-веб-служб создаются с помощью Windows Communication Foundation.

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

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

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

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

Для выполнения этого пошагового руководства потребуется следующее.

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

  • .NET Framework 3.5 и выше.

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

ПримечаниеПримечание

Для данного пошагового руководства необходимо использовать веб-узел 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. Нажмите кнопку ОК.

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

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

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

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

  1. В обозревателе решений щелкните правой кнопкой мыши имя веб-узла (http://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 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 и нажмите кнопку Вызвать.

    Новое окно отображает 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. Нажмите кнопку ОК.

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

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

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

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

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

    диалоговое окно "Добавление веб-ссылки"

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

    http://localhost/TemperatureWebService/Convert.asmx

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

    ПримечаниеПримечание

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

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

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

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

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

ПримечаниеПримечание

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

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

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

Снимок экрана VenusWebServicesWalkthroughConsumePage

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

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

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

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

    Свойства

    Textbox

    Идентификатор: TemperatureTextbox

    Текст: (пусто)

    Кнопка

    Идентификатор: ConvertButton

    Текст: Convert

    Метка

    Идентификатор: FahrenheitLabel

    Текст: (пусто)

    Метка

    Идентификатор: CelsiusLabel

    Текст: (пусто)

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

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

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

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

    
    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, и нажмите кнопку Преобразовать.

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

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

ПримечаниеПримечание

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

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

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

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

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

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

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

    ПримечаниеПримечание

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

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

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

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

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

    ПримечаниеПримечание

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

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

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

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

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

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

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

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

    ПримечаниеПримечание

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

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

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

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

    
    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. Возможно разработчику захочется поэкспериментировать с дополнительными, более сложными возможностями веб-служб. Дополнительные сведения см. в следующих разделах.

XML Web Services in Visual FoxPro , Введение в программирование веб-служб в управляемом коде, Web Services (How Do I in Visual Basic), XML Web Services Created with ATL Server и Creating and Accessing Web Services Walkthroughs.

Показ: