WCF для создания сервиса на основе SOAP - PullRequest
12 голосов
/ 25 ноября 2010

Я пытаюсь найти несколько хороших руководств, которые позволили бы мне создать простой сервис на основе SOAP с использованием WCF и развернуть его.Я гуглю последние 2 часа и не могу найти какой-либо хороший ресурс .. Кто-нибудь может мне помочь?

Ответы [ 3 ]

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

Что касается ресурсов: есть MSDN WCF Developer Center , в котором есть все - от учебников для начинающих до статей и примеров кода.

Кроме того, ознакомьтесь с библиотекой скрининга наMSDN для действительно полезной 10-15-минутной порции информации практически по любой теме, связанной с WCF, которая вас может заинтересовать.

Также очень хороши статьи Service Station в журнале MSDN о различных аспектах WCF - некоторые более простые, такие как Сериализация в WCF или Связывания WCF в глубине , некоторые более продвинутые и эзотерические - но всегда стоит посмотреть!

Обновление: для изучения WCF и SOAP, посмотрите, например,

и многое другое - существует тонна учебных материалов и учебных материалов по WCF с использованием привязок SOAP - не только REST-материал дляконечно!

2 голосов
/ 11 ноября 2013

Конечные точки REST / SOAP для службы WCF

Вы можете предоставить службу в двух разных конечных точках.в SOAP можно использовать привязку, поддерживающую SOAP, например basicHttpBinding, в RESTful можно использовать webHttpBinding.Я предполагаю, что ваша служба REST будет в JSON, в этом случае вам нужно настроить две конечные точки со следующей конфигурацией поведения

<endpointBehaviors>
<behavior name="jsonBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>

Пример конфигурации конечной точки в вашем сценарии:

<services>
<service name="TestService">
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="json" binding="webHttpBinding"  behaviorConfiguration="jsonBehavior" contract="ITestService"/>
</service>
</services>

поэтому услуга будет доступна по номеру

http://www.example.com/soap http://www.example.com/json Примените [WebGet] к договору на эксплуатацию, чтобы сделать его RESTful.например,

открытый интерфейс ITestService {[OperationContract] [WebGet] string HelloWorld (string text)}

Обратите внимание, что если служба REST отсутствует в JSON, параметры операций не могут содержать сложный тип,Для простого старого XML в качестве формата возврата это пример, который будет работать как для SOAP, так и для XML.

[ServiceContract(Namespace = "http://test")]
public interface ITestService
{
[OperationContract]
[WebGet(UriTemplate = "accounts/{id}")]
Account[] GetAccount(string id);
}

Поведение POX для REST Простой старый XML

<behavior name="poxBehavior">
  <webHttp/>
</behavior>

Конечные точки

<services>
<service name="TestService">
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="xml" binding="webHttpBinding"  behaviorConfiguration="poxBehavior" contract="ITestService"/>
</service>
</services>

Услуга будет доступна в

http://www.example.com/soap http://www.example.com/xmlЗапрос REST попробуйте в браузере,http://www.example.com/xml/accounts/A123

Конфигурация конечной точки клиента SOAP-запроса для службы SOAP после добавления ссылки на службу,

<client>
<endpoint address="http://www.example.com/soap" binding="basicHttpBinding"
  contract="ITestService" name="BasicHttpBinding_ITestService" />

в C #

TestServiceClient client = new TestServiceClient();
client.GetAccount("A123");

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

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

WCF - это технология для строительных услуг.Он не предполагает, что сервисы являются сервисами SOAP, RESTFul или чем-то еще.Вы должны изучить основы WCf, такие как Service и DataContracts, конечные точки, привязки и т. Д., Чтобы иметь возможность работать с любым видом службы.

Ссылки, данные marc_s, очень полезны для этого.Что касается SOAP, это формат \ технология, используемая для передачи сообщений из одной конечной точки в другую.Эти детали охватываются обязательным аспектом WCF.Когда вы предоставляете и используете сервисы, вам просто нужно выбрать Binding, который использует SOAP.

Следовательно, вы должны, используя ссылки, предоставленные marc_s, изучить основы WCF для построения сервиса.Затем вы узнаете, как создать службу и какую привязку выбрать для использования SOAP.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...