Ответ 1
WCF не может описать услугу REST. Служба REST может быть описана WADL или WSDL 2.0, но WCF не поддерживает ни один из этих языков описания.
Я создал REST WCF в С#, указав WebGET и WebHttpBinding в web.config. Сервис отлично работает через IE. Мой wsdl запускается, как показано ниже, и имеет мыло в wsdl. Поскольку это REST, не должно мыло присутствовать в wsdl.
WSDL:
<?xml version="1.0" encoding="utf-8" ?>
<wsdl:definitions name="ServiceImp" targetNamespace="http://tempuri.org/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:tns="http://tempuri.org/"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:wsa10="http://www.w3.org/2005/08/addressing"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex">
В приведенном выше wsdl, Так как это HTTP, почему содержимое мыла входит в службу REST?
Спасибо, Vinoth Khanna.S
WCF не может описать услугу REST. Служба REST может быть описана WADL или WSDL 2.0, но WCF не поддерживает ни один из этих языков описания.
Как указано выше, REST не имеет понятия WSDL в WCF, только SOAP. Если URL-адрес для ?wsdl
работает, то у вас, вероятно, есть конечная точка "mex" (Metadata Exchange), определенная в вашей конфигурации, и это то, что обслуживает WSDL. Обычно это добавляется по умолчанию, если вы добавляете службу WCF с помощью мастеров VisualStudio. Если он есть, его можно удалить, если вы не планируете использовать SOAP. Обычно это выглядит примерно так:
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
На боковой ноте; возможно, WCF обслуживает те же сервисы, что и SOAP и REST, как описано здесь: Конечные точки REST/SOAP для службы WCF