Как мне вызвать веб-службу на основе SOAP со страницы .asmx?

#c# #.net #web-services #soap #asmx

#c# #.net #веб-службы #soap #asmx

Вопрос:

Я пытаюсь создать своего рода веб-службу «начальной загрузки», используя классическую страницу .net C # .asmx, а не WCF. (Бизнес-требования для этого проекта специфичны и не требуют службы WCF).

В принципе, я пытаюсь сделать это:

  1. Создайте новую веб-службу (у меня нет проблем с этим)
  2. Этой службе необходимо выполнить вызов веб-службы Sharepoint на основе SOAP
  3. Мне нужно использовать эту службу
  4. Мне нужно добавить дополнительные фрагменты информации для моей веб-службы в результат SOAP (здесь тоже нет проблем)

Проблема, с которой я столкнулся, связана с пунктами № 2 и № 3. Я нашел множество статей, использующих WCF для использования веб-служб на основе SOAP или использующих «Linq» для подключения к sharepoint и т.д., Но это не то, что я ищу.

То, что я ищу, — это просто пошаговый процесс того, что мне нужно сделать, чтобы подтолкнуть меня в правильном направлении.

Пример:

  1. добавить ссылку на веб-службу??
  2. добавьте эту строку (ы) кода для создания нового запроса SOAP??
  3. добавьте эту строку (ы) кода для анализа и использования службы??

Заранее большое вам спасибо!!!

Пример кода также был бы весьма признателен!

Комментарии:

1. Какую версию SharePoint вы используете?

Ответ №1:

В том факте, что это веб-служба, нет ничего волшебного. Просто используйте «Добавить ссылку на службу», а затем обработайте ее как любой другой фрагмент кода, ссылающийся на веб-службу.

Кроме того, знают ли те, кто писал требования, что служба WCF может предоставлять basicHttpBinding конечную точку, которая выглядит точно так же, как конечная точка веб-службы ASMX? Она также будет обладать всеми преимуществами WCF, в дополнение к тому, что Microsoft не использует то, что считает «устаревшей технологией».

Комментарии:

1. Спасибо вам за ваш ответ!! Я обсудлю этот вопрос с ними, чтобы посмотреть, сможем ли мы что-то модернизировать. В то же время, поскольку любые технические изменения занимают вечность, как бы я мог ссылаться на этот веб-сервис в своем коде, чтобы фактически отправить SOAP-запрос, а затем использовать / проанализировать его? Еще раз спасибо.

2. Извините, я не понимаю, что вы имеете в виду. Вот как вы ссылаетесь на веб-службу. Используйте «Добавить ссылку на службу», а затем действуйте как обычно. Вы могли бы использовать «Добавить веб-ссылку», если вам нужно, но зачем делать обратное, когда в этом нет необходимости?

3. Извините за мой расплывчатый вопрос. Я имел в виду, как я мог бы использовать прокси, который был создан для вызова веб-службы и обработки ответа. В руководстве, приложенном к моему комментарию в ответе @Joel C, описан «следующий шаг» после добавления ссылки на проект. Еще раз спасибо за ваш ответ!

Ответ №2:

Центр разработки SharePoint в MSDN был бы хорошим местом для получения общей информации, руководств и т.д. Архитектура сервера и сайта: обзор объектной модели для Windows SharePoint Services 3 SDK было бы неплохо начать знакомство с объектной моделью SharePoint, поскольку термины (SPSite, SPWeb и т.д.), с которыми вы столкнетесь в примерах, могут сбивать с толку.

В основном вы захотите добавить свою веб-ссылку на веб-службу SharePoint, которую вы собираетесь использовать. Используемая вами конкретная ссылка будет зависеть от того, чего вы пытаетесь достичь, существует целый список доступных веб-служб Windows SharePoint Services. Они предназначены для общих задач SharePoint, таких как взаимодействие со списками и сайтами; существует также целый отдельный набор веб-служб для SharePoint Server, который можно использовать для взаимодействия с каталогом бизнес-данных, корпоративным поиском и любыми другими функциями, которые поставляются с SharePoint Server, а не с Windows SharePoint Services.

Когда вы добавляете веб-ссылку в visual Studio, она автоматически генерирует прокси-сервер в вашем проекте для удаленной веб-службы, и вы используете созданный прокси-сервер для выполнения того, что вы хотите сделать. Однако, работая непосредственно с веб-службами, практически все возвращает общий код, с XmlNode которым вам придется иметь дело, поэтому, если вы работаете в .NET, гораздо лучшей альтернативой использованию веб-служб напрямую было бы загрузить SharePoint SDK и программировать на основе объектной модели сервера.

Если вы в конечном итоге используете объектную модель, убедитесь, что вы внимательно прочитали оба этих документа:
Рекомендации: распространенные проблемы с кодированием при использовании объектной модели SharePoint
Рекомендации: использование одноразовых объектов служб Windows SharePoint

Комментарии:

1. Спасибо! Я собираюсь использовать Sharepoint SDK, как вы предложили. Если кто-то наткнется на это и захочет ознакомиться с базовым руководством по использованию C # для простого вызова веб-служб Sharepoint, пожалуйста, ознакомьтесь с этой статьей: ссылка

Ответ №3:

Вот небольшое руководство по тому, что вы пытаетесь сделать: http://www.xefteri.com/articles/show.cfm?id=15

Комментарии:

1. Спасибо за руководство, но я искал веб-службу на C #. Статья, на которую дана ссылка, находится на VB.