Dela via


ServiceDescription- och WSDL-referens

I det här avsnittet beskrivs hur Windows Communication Foundation (WCF) mappar WSDL-dokument (Web Services Description Language) till och från ServiceDescription instanser.

Så här Kartor ServiceDescription till WSDL 1.1

Du kan använda WCF för att exportera WSDL-dokument från en ServiceDescription instans för din tjänst. WSDL-dokument genereras automatiskt för din tjänst när du publicerar metadataslutpunkter.

Du kan också importera ServiceEndpoint instanser, ContractDescription instanser och Binding instanser från WSDL-dokument med hjälp av WsdlImporter typen .

WSDL-dokumenten, som exporteras av WCF, importerar alla XML-schemadefinitioner som används från externa XML-schemadokument. Ett separat XML-schemadokument exporteras för varje målnamnområde som datatyperna använder i tjänsten. På samma sätt exporteras ett separat WSDL-dokument för varje målnamnområde som tjänstkontrakten använder.

Servicedescription

En ServiceDescription instans mappar till ett wsdl:service element. En ServiceDescription instans innehåller en samling ServiceEndpoint instanser som varje mappning till enskilda wsdl:port element.

Egenskaper WSDL-mappning
Name Värdet wsdl:service/@name för tjänsten.
Namespace TargetNamespace för wsdl:service definitionen för tjänsten.
Endpoints Definitionerna wsdl:port för tjänsten.

ServiceEndpoint

En ServiceEndpoint instans mappar till ett wsdl:port element. En ServiceEndpoint instans innehåller en adress, en bindning och ett kontrakt.

Slutpunktsbeteenden som implementerar IWsdlExportExtension gränssnittet kan ändra elementet wsdl:port för slutpunkten som de är kopplade till.

Egenskaper WSDL-mappning
Name Värdet wsdl:port/@name för slutpunkten och wsdl:bindingvärdet /@name för slutpunktsbindningen.
Address Adressen för wsdl:port definitionen för slutpunkten.

Transporten för slutpunkten avgör formatet på adressen. För transporter som stöds av WCF kan det till exempel vara en SOAP-adress eller en slutpunktsreferens.
Binding Definitionen wsdl:binding för slutpunkten.

Till skillnad från wsdl:binding definitioner är bindningar i WCF inte knutna till något kontrakt.
Contract Definitionen wsdl:portType för slutpunkten.
Behaviors Slutpunktsbeteenden som implementerar IWsdlExportExtension gränssnittet kan ändra wsdl:port för slutpunkten.

Bindningar

Bindningsinstansen för en ServiceEndpoint instans mappar till en wsdl:binding definition. Till skillnad från wsdl:binding definitioner, som måste associeras med en specifik wsdl:portType definition, är WCF-bindningar oberoende av något kontrakt.

En bindning består av en samling bindningselement. Varje element beskriver någon aspekt av hur slutpunkten kommunicerar med klienter. Dessutom har en bindning en MessageVersion som anger EnvelopeVersion och AddressingVersion för slutpunkten.

Egenskaper WSDL-mappning
Name Används i standardnamnet för en slutpunkt, som är bindningsnamnet med kontraktnamnet som läggs till avgränsat med ett understreck.
Namespace För targetNamespacewsdl:binding definitionen.

Om en princip är kopplad till WSDL-porten vid import mappar det importerade bindningsnamnområdet till targetNamespace för wsdl:port definitionen.
BindingElementCollection, som returneras av CreateBindingElementsmetoden () Olika domänspecifika tillägg till wsdl:binding definitionen, vanligtvis principkontroller.
MessageVersion Och EnvelopeVersionAddressingVersion för slutpunkten.

När MessageVersion.None har angetts innehåller WSDL-bindningen ingen SOAP-bindning och WSDL-porten innehåller inte WS-Adresseringsinnehåll. Den här inställningen används vanligtvis för vanliga gamla XML-slutpunkter (POX).

BindingElements

Bindningselementen för en slutpunktsbindningskarta till olika WSDL-tillägg i wsdl:binding, till exempel principkontroller.

TransportBindingElement För bindningen avgör transportens URI (Uniform Resource Identifier) för en SOAP-bindning.

AddressingVersion

AddressingVersion en bindning mappas till den version av adressering som används i wsd:port. WCF stöder SOAP 1.1- och SOAP 1.2-adresser samt WS-Addressing 08/2004- och WS-Addressing 1.0-slutpunktsreferenser.

EnvelopeVersion

EnvelopeVersion en bindning mappar till versionen av SOAP som används i wsdl:binding. WCF stöder SOAP 1.1- och SOAP 1.2-bindningar.

Kontrakt

Instansen ContractDescription för en ServiceEndpoint instans mappar till en wsdl:portType. En ContractDescription instans beskriver alla åtgärder för ett visst kontrakt.

Egenskaper WSDL-mappning
Name Värdet wsdl:portType/@name för kontraktet.
Namespace TargetNamespace för wsdl:portType definitionen.
SessionMode Värdet wsdl:portType/@msc:usingSession för kontraktet. Det här attributet är ett WCF-tillägg för WSDL 1.1.
Operations Definitionerna wsdl:operation för kontraktet.

Operations

En OperationDescription instans mappar till en/wsdl:portTypewsdl:operation . En OperationDescription innehåller en samling MessageDescription instanser som beskriver meddelandena för åtgärden.

Två åtgärdsbeteenden har stor betydelse för hur en OperationDescription mappas till ett WSDL-dokument: DataContractSerializerOperationBehavior och XmlSerializerOperationBehavior.

Egenskaper WSDL-mappning
Name Värdet wsdl:portType/wsdl:operation/@name för åtgärden.
ProtectionLevel Skyddskontroller i säkerhetsprinciper som är kopplade till meddelandena wsdl:binding/wsdl:operation för den här åtgärden.
IsInitiating Värdet wsdl:portType/wsdl:operation/@msc:isInitiating för åtgärden. Det här attributet är ett WCF-tillägg för WSDL 1.1.
IsTerminating Värdet wsdl:portType/wsdl:operation/@msc:isTerminating för åtgärden. Det här attributet är ett WCF-tillägg för WSDL 1.1.
Messages Meddelandena wsdl:portType//wsdl:operationwsdl:input ochwsdl:outputwsdl:portType/wsdl:operation/för åtgärden.
Faults Definitionerna wsdl:portType//wsdl:operationwsdl:fault för åtgärden.
Behaviors Och DataContractSerializerOperationBehaviorXmlSerializerOperationBehavior hantera åtgärdsbindningen och åtgärdsmeddelandena.

The DataContractSerializerOperationBehavior

DataContractSerializerOperationBehavior För en åtgärd är en IWsdlExportExtension implementering som exporterar WSDL-meddelanden och bindning för den åtgärden. XML-schematyperna exporteras med hjälp av XsdDataContractExporter. Avgör DataContractSerializerOperationBehavior även vilken användning, formatmall och schemaexportör och importör som ska användas för åtgärden.

Egenskaper WSDL-mappning
DataContractFormatAttribute Egenskapen Style för det här attributet mappar till wsdl:binding//wsdl:operationsoap:operationvärdet /@style för åtgärden.

Stöder DataContractSerializerOperationBehavior endast literal användning av schematyperna i WSDL.

The XmlSerializerOperationBehavior

XmlSerializerOperationBehavior För en åtgärd är en IWsdlExportExtension implementering som exporterar WSDL-meddelanden och bindning för den åtgärden. XML-schematyperna exporteras med hjälp av XmlSchemaExporter. Avgör XmlSerializerOperationBehavior även vilken användning, formatmall och schemaexportör och importör som ska användas för åtgärden.

Egenskaper WSDL-mappning
XmlSerializerFormatAttribute Egenskapen Style för det här attributet mappar till wsdl:binding//wsdl:operationsoap:operationvärdet /@style för åtgärden.

Egenskapen Use för det här attributet mappar till wsdl:binding//wsdl:operationsoap:operationvärdena /*/@use för alla meddelanden i åtgärden.

Meddelanden

En MessageDescription instans mappas till en wsdl:message som refereras av ettwsdl:operationwsdl:input/wsdl:portType/ eller ettwsdl:outputwsdl:portType/wsdl:operation/meddelande i en åtgärd. A MessageDescription har en brödtext och rubriker.

Egenskaper WSDL-mappning
Action Åtgärden SOAP eller WS-Addressing för meddelandet.

Observera att åtgärder som använder åtgärdssträngen "*" inte representeras i WSDL.
Direction MessageDirection.Input mappar till wsdl:input.

MessageDirection.Output mappar till wsdl:output.
ProtectionLevel Skyddskontroller i säkerhetsprinciper som är kopplade till wsdl:message definitionen för det här meddelandet.
Body Meddelandets meddelandetext.
Headers Sidhuvudena för meddelandet.
ContractDescription.Name, OperationContract.Name Vid export används för att härleda wsdl:messagevärdet /@name.

Meddelandetext

En MessageBodyDescription instans mappar till wsdl:message/wsdl:part definitionerna för brödtexten i ett meddelande. Meddelandetexten kan vara omsluten eller tom.

Egenskaper WSDL-mappning
WrapperName Om formatmallen inte är RPC mappar den WrapperName till elementnamnet som refereras avwsdl:partwsdl:message/med @name värdet "parameters".
WrapperNamespace Om formatmallen inte är RPC mappar den WrapperNamespace till elementnamnområdet förwsdl:partwsdl:message/med @name inställt på "parametrar".
Parts Meddelandedelarna för den här meddelandetexten.
ReturnValue Det underordnade elementet i omslutningselementet om det finns ett omslutningselement (dokumentomslutningsformat eller RPC-format), annars det första wsdl:message/wsdl:part i meddelandet.

Meddelandedelar

En MessagePartDescription instans mappar till en wsdl:message/wsdl:part och XML-schematypen eller -elementet som meddelandedelen pekar på.

Egenskaper WSDL-mappning
Name Värdet wsd:message/wsdl:part/@name för meddelandedelen och namnet på elementet som meddelandedelen pekar på.
Namespace Namnområdet för elementet som meddelandedelen pekar på.
Index Indexet för wsdl:message/wsdl:part meddelandet.
ProtectionLevel Skyddskontroller i säkerhetsprincipen wsdl:message som är kopplad till definitionen för den här meddelandedelen. Principen parametriseras för att peka på den specifika meddelandedelen.
MessageType XML-schematypen för elementet som meddelandedelen pekar på.

Meddelandehuvuden

En MessageHeaderDescription instans är en meddelandedel som även mappar till en soap:header bindning för meddelandedelen.

Fel

En FaultDescription instans mappar till enwsdl:operation//wsdl:portTypewsdl:fault definition och dess associerade wsdl:message definition. wsdl:message Läggs till i samma målnamnområde som dess associerade WSDL-porttyp. wsdl:message Har en enda meddelandedel med namnet "detail" som pekar på XML-schemaelementet som motsvarar egenskapsvärdet DefaultType för instansenFaultDescription.

Egenskaper WSDL-mappning
Name Värdet wsdl:portType//wsdl:operationwsdl:fault/@name för felet.
Namespace Namnområdet för XML-schemaelementet som meddelandedelen med felinformation pekar på.
Action Soap- eller WS-Addressing-åtgärden för felet.
ProtectionLevel Skyddskontroller i säkerhetsprincipen wsdl:message som är kopplad till definitionen för det här felet.
DetailType XML-schematypen för elementet som informationsmeddelandedelen pekar på.
Name, ContractDescription.Name, OperationDescription.Name, Används för att härleda wsdl:messagevärdet /@name för felmeddelandet.

Se även