Ищите хорошее объяснение на веб-сервисе SOAP - PullRequest
1 голос
/ 04 ноября 2010

Итак, я должен настроить веб-сервис. По сути, мы отправляем подписанные X509 XML-файлы каждому через HTTP. У нас есть их URL-адрес, на который мы должны публиковать сообщения, поэтому отправка его не является большой проблемой, я могу понять это. Однако я должен сообщить третьей стороне, по какому URL они могут публиковать наши сообщения. Как мне достичь этого URL?

Я хочу настроить веб-сервис таким образом, чтобы он автоматически обнаруживал любые отправленные нам запросы, извлекал подписанный XML из сообщения мыла и что-то с ним делал, а затем имел возможность форматировать ответ SOAP, подписывая XML на нашем прекратите использование x509 и отправьте его через HTTP обратно.

Может кто-нибудь дать мне достойное объяснение того, как я мог бы настроить что-то подобное в Visual Studio 2008? У нас есть другие сервисы, у которых есть api.ashx с такими методами:

Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

Но в основном, что это за URL, с которого он захватывает HTTP. И могу ли я настроить это так же?

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

Существует несколько хороших определений веб-сервисов SOAP:

Некоторые примеры создания веб-служб в .NET:

С этими статьями и некоторыми поисками в Google мне не потребовалось много времени, чтобы настроить небольшой веб-сервис, который работает как внешний API для нашего приложения.

0 голосов
/ 15 ноября 2010

URL-адрес вашего сервиса не имеет ничего общего с SOAP или чем-то подобным.Если у вас есть служба WCF (.svc) или служба ASMX (.asmx), то обычно вы размещаете ее где-то на веб-сервере - если вы используете http для механизма транспорта.

Так что URL - http://mywebserver.mydomain:80/a/b/c/myservice.svc - может соответствовать служебному файлу myservice.svc, который находится в папке c, которая находится в папке b, которая находится в папке a, которая находится в корневом каталоге веб-сайта, который прослушивает порт 80(это значение по умолчанию и его можно не указывать) на сервере mywebserver, который находится в домене mydomain.

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

Так что, если вы используете веб-сайт по умолчанию в IIS и не используете виртуальные каталоги, то вы бы разместили здесь свой служебный файл: C: \ Inetpub \ wwwroot \ a \ b \ c\ myservice.svc

Надеюсь, это поможет

0 голосов
/ 11 ноября 2010

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

Вот что предлагает Axis2c: Служба развернута в каталоге служб. На что также указывает ваш веб-сервер.

При этом что-нибудь под службы / MyCustomService будет переводиться как: http://yourip:port/axis2/services/MyCustomService

С вашим инструментарием SOAP конечная точка может иметь другую компоновку. Сервис по MS Toolkit, который я сейчас звоню, выглядит примерно так: http://theirip:port/name/name.aspx/serviceName

Ура!

...