WSDL для ОТДЫХА WCF
Я создал REST WCF в C#, указав 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?
Спасибо, Винот Ханна.С
2 ответа
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