Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 mappar 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.
ServiceBeskrivning
En ServiceDescription instans mappar till ett wsdl:service element. En ServiceDescription-instans innehåller en samling ServiceEndpoint-instanser som var och en mappar till individuella wsdl:port-element.
| Egenskaper | WSDL-mappning |
|---|---|
Name |
Värdet wsdl:service/@name för tjänsten. |
Namespace |
TargetNamespace för definitionen av wsdl:service för tjänsten. |
Endpoints |
Definitionerna wsdl:port för tjänsten. |
ServiceEndpoint (på engelska)
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 till definitionen av wsdl:port 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 som standardnamn för en endpoint, vilket är bindningsnamnet med kontraktnamnet bifogat och separerat med ett understreck. |
Namespace |
Den targetNamespace för wsdl:binding definitionen.Om en policy är kopplad till WSDL-porten vid import, mappar det importerade bindningsutrymmet till targetNamespace för definitionen för wsdl:port. |
BindingElementCollection, som returneras av CreateBindingElementsmetoden () |
Olika domänspecifika tillägg till wsdl:binding-definitionen, vanligtvis policy-framställningar. |
MessageVersion |
EnvelopeVersion och AddressingVersion för slutpunkten.När MessageVersion.None har angetts innehåller WSDL-bindningen inte någon SOAP-bindning och WSDL-porten innehåller inte WS-Addressing innehåll. Den här inställningen används vanligtvis för vanliga gamla XML-slutpunkter (POX). |
Bindningselement
Bindningselementen i en karta över slutpunktsbindningar motsvarar olika WSDL-tillägg i wsdl:binding, till exempel principuttryck.
TransportBindingElement för bindningen bestämmer transportens Uniform Resource Identifier (URI) för en SOAP-bindning.
Adresseringsversion
En bindning på AddressingVersion mappas till den version av adressering som används i wsd:port. WCF stöder SOAP 1.1- och SOAP 1.2-adresser och WS-Addressing 08/2004 och WS-Addressing 1.0-slutpunktsreferenser.
Kuvertversion
En bindning i EnvelopeVersion mappar till den version 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 motsvarar 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 för avtalet är wsdl:portType/@msc:usingSession. Det här attributet är ett WCF-tillägg för WSDL 1.1. |
Operations |
Definitionerna för wsdl:operation kontraktet. |
Operativa åtgärder
En OperationDescription instans mappar till en wsdl:portType/wsdl: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 |
Skyddsdeklarationer i säkerhetspolicyn kopplad 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 |
wsdl:portType
/
wsdl:operation
/
wsdl:input och wsdl:portType/wsdl:operation/wsdl:output för åtgärden. |
Faults |
Definitionerna wsdl:portType/wsdl:operation/wsdl:fault för åtgärden. |
Behaviors |
DataContractSerializerOperationBehavior och XmlSerializerOperationBehavior hanterar åtgärdsbindningen och åtgärdsmeddelandena. |
DataContractSerializerOperationBeteende
DataContractSerializerOperationBehavior för en operation är en IWsdlExportExtension implementering som exporterar WSDL-meddelanden och dess bindning för operationen. 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:operation/soap:operation/@style-värdet för åtgärden.Stöder DataContractSerializerOperationBehavior endast literal användning av schematyperna i WSDL. |
The XmlSerializerOperationBehavior
XmlSerializerOperationBehavior för en operation är en IWsdlExportExtension implementering som exporterar WSDL-meddelanden och dess bindning för operationen. 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:operation/soap:operation/@style-värdet för åtgärden.Egenskapen Use för det här attributet mappar till wsdl:binding/wsdl:operation/soap:operationvärdena /*/@use för alla meddelanden i operationen. |
Meddelanden
En MessageDescription instans mappas till en wsdl:message som refereras av ett wsdl:portType/wsdl:operation/wsdl:input eller ett wsdl:portType/wsdl:operation/wsdl:output meddelande i en åtgärd. A MessageDescription har en brödtext och rubriker.
| Egenskaper | WSDL-mappning |
|---|---|
Action |
SOAP- eller WS-Addressing-åtgärden 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 |
Skyddsanspråk i säkerhetspolicy som är kopplad till definitionen av wsdl:message 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 värdet för wsdl:message/@name. |
Meddelandetext
En instans av MessageBodyDescription mappar till definitionerna för wsdl:message/wsdl:part för brödtexten i ett meddelande. Meddelandetexten kan vara omsluten eller tom.
| Egenskaper | WSDL-mappning |
|---|---|
WrapperName |
Om stilen inte är RPC, så mappar WrapperName till elementnamnet som refereras av wsdl:message/wsdl:part med värdet @name satt till "parameters". |
WrapperNamespace |
Om formatstilen inte är RPC mappar WrapperNamespace till elementnamnsområdet för wsdl:message/wsdl:part 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 |
Skyddspåståenden i säkerhetspolicyn som är kopplad till wsdl:message-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 en wsdl:portType/wsdl:operation/wsdl: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:operation/wsdl: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 vid fel. |
ProtectionLevel |
Skyddspåståenden i säkerhetspolicyn som är kopplad till wsdl:message-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 värdet för wsdl:message/@name för felmeddelandet. |