Отправка запросов SOAP с помощью клиента Visual Studio 2005 (Visual Basic)
Пример в этом подразделе похож на пример в подразделе «Отправка запросов SOAP с помощью клиента Visual Studio 2005 (C#)». Единственное различие состоит в том, что этот пример написан на языке Visual Basic. Поэтому в подразделе приводится только необходимый исходный код и шаги для создания примера.
Создание рабочего образца
Так как создание этого образца содержит много шагов, приложение разделено на четыре части:
- Часть 1. Выполнение хранимой процедуры.
- Часть 2. Выполнение SQL-запроса без параметров.
- Часть 3. Выполнение SQL-запроса с параметрами.
- Часть 4. Выполнение пользовательской функции.
В каждой части содержится набор инструкций. В конце каждой части работу приложения можно проверить.
Создание необходимого класса учетных записей-посредников
- Создайте папку на компьютере для этого приложения.
- На клиентском компьютере из группы программ Microsoft Visual Studio 2005 запустите Microsoft Visual Studio 2005.
- Выберите Создать проект.
- Выберите Visual Basic Projects в качестве типа проекта Project Type.
- В текстовом поле Name укажите NativeSOAPApp2.
- В текстовом поле Location укажите путь к папке, куда необходимо сохранить проект.
- Выберите Windows Application в качестве шаблона и нажмите кнопку ОК.
- В окне обозревателя решений щелкните правой кнопкой мыши элемент Ссылки и выберите пункт Добавить веб-ссылку. Другим способом добавления веб-ссылки является выбор из меню Project пункта Add Web Reference.
- В окне Address введите https://Server/sql?wsdl, где Server — это имя сервера, и нажмите клавишу ВВОД. Если формирование WSDL-документа завершилось успешно, можно увидеть описание конечной точки. В этот момент выберите AddReference. Это действие создает необходимые классы-посредники, позволяющие вызывать методы в WSDL-документе.
Часть 1. Выполнение хранимой процедуры.
В этой части приложение запрашивает веб-метод GetCustomerInfo.
- Добавьте на форму Form1 текстовое поле (textBox1), кнопку (button1) и список (listBox1).
- Щелкните правой кнопкой мыши текстовое поле и выберите пункт Свойства. Измените значение Text с textBox1 на 1. Это значение идентификатора клиента по умолчанию.
- Щелкните правой кнопкой мыши кнопку button1 и выберите пункт Свойства.
- Измените значение свойства Text с button1 на ExecSP.
- Измените значение свойства (name) на ExecSP.
- Щелкните правой кнопкой мыши список listBox1 и выберите пункт Свойства. Измените значение свойства HorizontalScrollbar на True.
- Дважды щелкните ExecSP.
- Скопируйте код из раздела «Листинг кода Visual Basic для ExecSP» в эту функцию.
- Обновите код. Замените ссылки на
server
именем узла, определенным во время создания конечной точки с помощью инструкции CREATE ENDPOINT. - Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода»
Часть 2. Выполнение SQL-запроса без параметров.
В этой части клиентское приложение выполняет нерегламентированный запрос (запрос FOR XML), который получает имена трех работников из таблицы Employee в базе данных AdventureWorks.
- На вкладке [Design] на форму Form1 добавьте еще одну кнопку (button1).
- Щелкните правой кнопкой мыши эту кнопку и выберите пункт Свойства.
- Измените значение свойства Text с button1 на ExecBatchFindAllEmps.
- Измените значение свойства (name) на ExecBatchFindAllEmps.
- Дважды щелкните ExecBatchFindAllEmp.
- Скопируйте код из раздела «Листинг кода Visual Basic для FindAllEmps7» в эту функцию.
- Обновите код. Замените ссылки на
server
именем узла, определенным во время создания конечной точки с помощью инструкции CREATE ENDPOINT. - Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода»
Часть 3. Выполнение SQL-запроса с параметрами.
Эта часть аналогична предыдущей, за исключением того, что SOAP-запрос для нерегламентированного запроса включает параметр запроса. Запрос FOR XML запрашивает сведения о сотруднике по указанному идентификатору.
- На вкладке [Design] на форму Form1 добавьте еще одну кнопку (button1).
- Щелкните правой кнопкой мыши эту кнопку и выберите пункт Свойства.
- Измените значение свойства Text с button1 на ExecBatchFindAnEmp.
- Измените значение свойства (name) на ExecBatchFindAnEmp.
- Дважды щелкните ExecBatchFindAnEmp.
- Скопируйте код из раздела «Листинг кода Visual Basic для FindAnEmp» в эту функцию.
- Обновите код. Замените ссылки на
server
именем узла, определенным во время создания конечной точки с помощью инструкции CREATE ENDPOINT. - Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода».
Часть 4. Выполнение пользовательских функций.
В этой части клиентское приложение отправляет SOAP-запрос к веб-методу UDFReturningScalar. Веб-метод соответствует определяемой пользователем функции, отправляющей целочисленное значение.
- На вкладке [Design] на форму Form1 добавьте еще одну кнопку (button1).
- Щелкните правой кнопкой мыши эту кнопку и выберите пункт Свойства.
- Измените значение свойства Text с button1 на ExecUDFReturningScalar и
- измените значение свойства (name) на ExecUDFReturningScalar.
- Дважды щелкните ExecUDFReturningScalar.
- Скопируйте код из раздела «Листинг кода Visual Basic для ExecUDF» в эту функцию.
- Обновите код. Измените ссылки на сервер по имени узла, определенного во время создания конечной точки с помощью инструкции CREATE ENDPOINT.
- Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода».
Так как конечная точка задает встроенную проверку подлинности, в коде появляется следующая строка: proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
.
При использовании проверки подлинности SQL Server рекомендуется удалить эту строку и заменить ее кодом, который реализует заголовки WS-Security для предоставленных учетных данных проверки подлинности SQL Server. Дополнительные сведения см. в разделе Проверка подлинности SQL Server по протоколу SOAP.
Примечание. |
---|
При использовании проверки подлинности SQL Server или обычной проверки подлинности SQL Server 2005 требует использования протокола SSL, чтобы обеспечить безопасную зашифрованную передачу учетных данных пользователя, которые в противном случае будут передаваться открытым текстом. Дополнительные сведения о включении использования протокола SSL с конечными точками HTTP см. в разделе Настройка сертификата для использования протоколом SSL. |
Компиляция кода
SQL Server 2005 устанавливает платформу Microsoft .NET Framework 2.0 как часть процесса установки. Эти инструкции компиляции используют последнюю версию платформы .NET Framework (наибольший номер в папке \WINDOWS\Microsoft.NET\Framework).
Компиляция кода
- Сохраните весь проект.
Откройте командную строку и перейдите в папку, где был сохранен проект.
Из этой папки скопируйте файл Reference.vb из подпапки Web Reference\Server (например, «Web Reference\Server\Reference.vb»). Файлы Form1.vb и Reference.vb должны быть в одной папке.
Скомпилируйте код и укажите имя исполняемого EXE-файла. Например, если имя исполняемого файла NativeSOAPApp2.exe, командная строка будет такой:
\WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\vbc.exe /out:NativeSOAPApp2.exe /r:System.dll /r:System.Data.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:Microsoft.VisualBasic.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll /m:Form1 Form1.vb Reference.vb
xxxxx является номером папки, который соответствует версии платформы .NET Framework.
В результате в текущем каталоге создается исполняемый объект (NativeSOAPApp2.exe).Примечание. При использовании более ранней версии платформы .NET Framework возможно возникновение ошибки времени выполнения. В этом случае попытайтесь обновить хранимую процедуру GetCustomerInfo путем добавления предложения FOR XML AUTO
в конец инструкцииSELECT
следующим образом.SELECT TOP 3 SalesOrderID, OrderDate FROM SalesOrderHeader WHERE CustomerID = @CustomerID FOR XML AUTO
Результаты выполнения хранимой процедуры отображаются в списке.
См. также
Справочник
Настройка сервера на прослушивание запросов собственных веб-служб с поддержкой XML
Структура запроса и ответного сообщения SOAP
Образцы приложений, отправляющих запросы к собственным веб-службам с поддержкой XML
Правила и ограничения собственных веб-служб с поддержкой XML
Основные понятия
Оптимальные методы использования собственных веб-служб с поддержкой XML
Другие ресурсы
Написание клиентских приложений