Веб-служба .net 2.0, развертывание и использование

Я создал отдельный проект веб-сервиса, используя VS 2005.

  1. Мой первый вопрос: могу ли я добавить более 1 файла службы (asmx) и использовать их в одном проекте веб-сервиса?
  2. Как я могу опубликовать их и использовать/вызывать/потреблять их с разных веб-сайтов? (Я знаю, как их использовать, когда они находятся в одном проекте, но другой проект немного сбивает с толку)
  3. Как я могу защитить их, чтобы сделать их доступными для пользователей/приложений, прошедших проверку подлинности?

Использование VS 2005, .net 2.0, VB.NET (и я не могу использовать WCF)


person rs.    schedule 14.01.2010    source источник


Ответы (2)


  1. Да, это вполне возможно. Если для них логически целесообразно использовать один и тот же проект веб-службы, все будет в порядке.
  2. Просто опубликуйте их, как на обычном веб-сайте. Развертывание XCOPY или публикация из VS.NET. Вы создаете клиентские прокси-серверы, «добавляя веб-ссылку» в свой проект, который вы хотите использовать веб-службу, а затем просматриваете/выбираете локальную конечную точку .asmx через HTTP. Под капотом он сгенерирует для вас прокси-класс клиента SOAP с соответствующими типами данных (путем вызова wsdl.exe).
  3. Чтобы защитить их, ознакомьтесь с документами MSDN здесь.
person Wim Hollebrandse    schedule 14.01.2010
comment
Ах, веб-ссылки, я не мог вспомнить, как ссылаться на веб-службы в .NET. - person James McMahon; 14.01.2010
comment
Да, хотя ничто не мешает вам использовать командную строку wsdl.exe напрямую и импортировать вывод в ваш проект. - person Wim Hollebrandse; 14.01.2010

Мой первый вопрос: могу ли я добавить более 1 файла службы (asmx) и использовать их в одном проекте веб-сервиса?

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

[WebMethod]

Перед общедоступными методами внутри вашего файла Service.cs.

Как я могу опубликовать их и использовать/вызывать/потреблять их с разных веб-сайтов? (Я знаю, как их использовать, когда они находятся в одном проекте, но другой проект немного сбивает с толку)

Вы можете сгенерировать код для взаимодействия с веб-службой на основе файла WSDL. Я не уверен, как вы делаете это в .NET, но в Java есть инструмент командной строки для создания класса для взаимодействия со службой SOAP из других приложений. В конце концов, в этом весь смысл веб-сервисов.

Как я могу защитить их, чтобы сделать их доступными для пользователей/приложений, прошедших проверку подлинности?

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

Вы также можете настроить обычную проверку подлинности с помощью атрибута проверки подлинности файла Web.config.

person James McMahon    schedule 14.01.2010