Delen via


Naslaginformatie over ServiceDescription en WSDL

In dit onderwerp wordt beschreven hoe WSDL-documenten (Web Services Description Language) met Windows Communication Foundation (WCF) worden toegewezen aan en van ServiceDescription exemplaren.

Hoe ServiceDescription Kaarten naar WSDL 1.1

U kunt WCF gebruiken om WSDL-documenten te exporteren vanuit een ServiceDescription exemplaar voor uw service. WSDL-documenten worden automatisch gegenereerd voor uw service wanneer u metagegevenseindpunten publiceert.

U kunt ook exemplaren, ContractDescription exemplaren en Binding exemplaren uit WSDL-documenten importeren ServiceEndpoint met behulp van het WsdlImporter type.

De WSDL-documenten, geëxporteerd door WCF, importeren alle XML-schemadefinities die worden gebruikt uit externe XML-schemadocumenten. Er wordt een afzonderlijk XML-schemadocument geëxporteerd voor elke doelnaamruimte die door de gegevenstypen in de service wordt gebruikt. Op dezelfde manier wordt een afzonderlijk WSDL-document geëxporteerd voor elke doelnaamruimte die door de servicecontracten wordt gebruikt.

ServiceDescription

Een ServiceDescription exemplaar wordt toegewezen aan een wsdl:service element. Een ServiceDescription exemplaar bevat een verzameling ServiceEndpoint exemplaren die elk zijn toegewezen aan afzonderlijke wsdl:port elementen.

Eigenschappen WSDL-toewijzing
Name De wsdl:servicewaarde /@name voor de service.
Namespace De targetNamespace voor de wsdl:service definitie voor de service.
Endpoints De wsdl:port definities voor de service.

ServiceEndpoint

Een ServiceEndpoint exemplaar wordt toegewezen aan een wsdl:port element. Een ServiceEndpoint exemplaar bevat een adres, een binding en een contract.

Eindpuntgedrag waarmee de IWsdlExportExtension interface wordt geïmplementeerd, kan het wsdl:port element wijzigen voor het eindpunt waaraan ze zijn gekoppeld.

Eigenschappen WSDL-toewijzing
Name De wsdl:portwaarde /@name voor het eindpunt en de wsdl:binding/@name-waarde voor de eindpuntbinding.
Address Het adres voor de wsdl:port definitie voor het eindpunt.

Het transport voor het eindpunt bepaalt de indeling van het adres. Voor door WCF ondersteunde transporten kan dit bijvoorbeeld een SOAP-adres of een eindpuntverwijzing zijn.
Binding De wsdl:binding definitie voor het eindpunt.

In tegenstelling tot wsdl:binding definities zijn bindingen in WCF niet gekoppeld aan één contract.
Contract De wsdl:portType definitie voor het eindpunt.
Behaviors Eindpuntgedrag dat de IWsdlExportExtension interface implementeert, kan het wsdl:port voor het eindpunt wijzigen.

Bindingen

Het bindingexemplaren voor een ServiceEndpoint exemplaar worden toegewezen aan een wsdl:binding definitie. In tegenstelling tot wsdl:binding definities, die moeten worden gekoppeld aan een specifieke wsdl:portType definitie, zijn WCF-bindingen onafhankelijk van elk contract.

Een binding bestaat uit een verzameling bindingselementen. Elk element beschrijft een bepaald aspect van hoe het eindpunt communiceert met clients. Daarnaast heeft een binding een MessageVersion binding die het EnvelopeVersion en AddressingVersion voor het eindpunt aangeeft.

Eigenschappen WSDL-toewijzing
Name Wordt gebruikt in de standaardnaam van een eindpunt. Dit is de bindingsnaam waaraan de contractnaam is toegevoegd, gescheiden door een onderstrepingsteken.
Namespace De targetNamespace voor de wsdl:binding definitie.

Als er bij het importeren een beleid is gekoppeld aan de WSDL-poort, wordt de geïmporteerde bindingsnaamruimte toegewezen aan de targetNamespacewsdl:port definitie.
BindingElementCollection, zoals geretourneerd door de CreateBindingElements() methode Verschillende domeinspecifieke extensies voor de wsdl:binding definitie, meestal beleidsverklaringen.
MessageVersion Het EnvelopeVersion en AddressingVersion voor het eindpunt.

Wanneer MessageVersion.None deze is opgegeven, bevat de WSDL-binding geen SOAP-binding en bevat de WSDL-poort geen WS-Adresseringsinhoud. Deze instelling wordt doorgaans gebruikt voor gewone OUDE XML-eindpunten (POX).

BindingElements

De bindingselementen voor een eindpuntbinding worden toegewezen aan verschillende WSDL-extensies in de wsdl:binding, zoals beleidsverklaringen.

De TransportBindingElement voor de binding bepaalt de transport Uniform Resource Identifier (URI) voor een SOAP-binding.

AddressingVersion

De AddressingVersion op een binding wordt toegewezen aan de versie van adressering die wordt gebruikt in de wsd:port. WCF ondersteunt SOAP 1.1- en SOAP 1.2-adressen en WS-Addressing 08/2004- en WS-Addressing 1.0-eindpuntverwijzingen.

EnvelopeVersion

De EnvelopeVersion op een binding wordt toegewezen aan de versie van SOAP die wordt gebruikt in de wsdl:binding. WCF ondersteunt SOAP 1.1- en SOAP 1.2-bindingen.

Contracten

Het ContractDescription exemplaar voor een ServiceEndpoint exemplaar wordt toegewezen aan een wsdl:portType. In ContractDescription een exemplaar worden alle bewerkingen voor een bepaald contract beschreven.

Eigenschappen WSDL-toewijzing
Name De wsdl:portTypewaarde /@name voor het contract.
Namespace De targetNamespace voor de wsdl:portType definitie.
SessionMode De wsdl:portType/@msc:usingSession-waarde voor het contract. Dit kenmerk is een WCF-extensie voor WSDL 1.1.
Operations De wsdl:operation definities voor het contract.

Operations

Een OperationDescription exemplaar wordt toegewezen aan een/wsdl:portTypewsdl:operation . Een OperationDescription bevat een verzameling MessageDescription exemplaren die de berichten voor de bewerking beschrijven.

Twee werkingsgedragen nemen sterk deel aan hoe een OperationDescription wordt toegewezen aan een WSDL-document: DataContractSerializerOperationBehavior en XmlSerializerOperationBehavior.

Eigenschappen WSDL-toewijzing
Name De wsdl:portType/wsdl:operationwaarde /@name voor de bewerking.
ProtectionLevel Beveiligingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:binding/wsdl:operation berichten voor deze bewerking.
IsInitiating De wsdl:portType/wsdl:operation/@msc:isInitiating value for the operation. Dit kenmerk is een WCF-extensie voor WSDL 1.1.
IsTerminating De wsdl:portType/wsdl:operationwaarde /@msc:isTerminating voor de bewerking. Dit kenmerk is een WCF-extensie voor WSDL 1.1.
Messages De wsdl:portType//wsdl:inputwsdl:operationen wsdl:portType/wsdl:operation/wsdl:output berichten voor de bewerking.
Faults De wsdl:portType//wsdl:operationwsdl:fault definities voor de bewerking.
Behaviors De DataContractSerializerOperationBehavior bewerkingsbinding XmlSerializerOperationBehavior en de bewerkingsberichten verwerken.

De DataContractSerializerOperationBehavior

De DataContractSerializerOperationBehavior voor een bewerking is een IWsdlExportExtension implementatie waarmee de WSDL-berichten en binding voor die bewerking worden geëxporteerd. De XML-schematypen worden geëxporteerd met behulp van de XsdDataContractExporter. Het DataContractSerializerOperationBehavior bepaalt ook het gebruik, de stijl en het schemaexporteur en de importeur die voor die bewerking moeten worden gebruikt.

Eigenschappen WSDL-toewijzing
DataContractFormatAttribute De Style eigenschap voor dit kenmerk wordt toegewezen aan desoap:operationwsdl:binding/wsdl:operation/ /@style-waarde voor de bewerking.

De DataContractSerializerOperationBehavior functie ondersteunt alleen het letterlijke gebruik van de schematypen in de WSDL.

De XmlSerializerOperationBehavior

De XmlSerializerOperationBehavior voor een bewerking is een IWsdlExportExtension implementatie waarmee de WSDL-berichten en binding voor die bewerking worden geëxporteerd. De XML-schematypen worden geëxporteerd met behulp van de XmlSchemaExporter. Het XmlSerializerOperationBehavior bepaalt ook het gebruik, de stijl en het schemaexporteur en de importeur die voor die bewerking moeten worden gebruikt.

Eigenschappen WSDL-toewijzing
XmlSerializerFormatAttribute De Style eigenschap voor dit kenmerk wordt toegewezen aan desoap:operationwsdl:binding/wsdl:operation/ /@style-waarde voor de bewerking.

De Use eigenschap voor dit kenmerk wordt toegewezen aan desoap:operationwsdl:binding/wsdl:operation/ waarden /*/@use voor alle berichten in de bewerking.

Berichten

Een MessageDescription exemplaar wordt toegewezen aan een wsdl:message instantie waarnaar wordt verwezen door eenwsdl:operationwsdl:input/wsdl:portType/ of eenwsdl:outputwsdl:portType/wsdl:operation/bericht in een bewerking. A MessageDescription heeft een hoofdtekst en kopteksten.

Eigenschappen WSDL-toewijzing
Action De soap- of WS-adresseringsactie voor het bericht.

Bewerkingen die gebruikmaken van de actiereeks *, worden niet weergegeven in WSDL.
Direction MessageDirection.Input wordt toegewezen aan wsdl:input.

MessageDirection.Output wordt toegewezen aan wsdl:output.
ProtectionLevel Beveiligingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:message definitie voor dit bericht.
Body De hoofdtekst van het bericht.
Headers De kopteksten voor het bericht.
ContractDescription.Name, OperationContract.Name Bij export wordt gebruikt om de wsdl:message/@name-waarde af te leiden.

Berichttekst

Een MessageBodyDescription exemplaar wordt toegewezen aan de wsdl:message/wsdl:part definities voor de hoofdtekst van een bericht. De hoofdtekst van het bericht kan worden verpakt of ontbloot.

Eigenschappen WSDL-toewijzing
WrapperName Als de stijl niet RPC is, wordt de naam van het WrapperName element toegewezen waarnaar wordt verwezen door de met dewsdl:partwsdl:message/set @name 'parameters'.
WrapperNamespace Als de stijl niet RPC is, wordt de WrapperNamespace naamruimte toegewezen aan de elementnaamruimte die iswsdl:partwsdl:message/@name ingesteld op 'parameters'.
Parts De berichtonderdelen voor deze berichttekst.
ReturnValue Het onderliggende element van het wrapper-element als er een wrapper-element bestaat (document verpakte stijl of RPC-stijl), anders de eerste wsdl:message/wsdl:part in het bericht.

Berichtonderdelen

Een MessagePartDescription exemplaar wordt toegewezen aan een wsdl:message/wsdl:part en het XML-schematype of -element waarnaar het berichtonderdeel verwijst.

Eigenschappen WSDL-toewijzing
Name De wsd:message/wsdl:partwaarde /@name voor het berichtonderdeel en de naam van het element waarnaar het berichtonderdeel verwijst.
Namespace De naamruimte van het element waarnaar het berichtonderdeel verwijst.
Index De index van het wsdl:message/wsdl:part bericht.
ProtectionLevel Beveiligingsverklaringen in beveiligingsbeleid dat is gekoppeld aan de wsdl:message definitie voor dit berichtonderdeel. Het beleid wordt geparameteriseerd om naar het specifieke berichtonderdeel te verwijzen.
MessageType Het XML-schematype van het element waarnaar het berichtonderdeel verwijst.

Berichtkoppen

Een MessageHeaderDescription exemplaar is een berichtonderdeel dat ook wordt toegewezen aan een soap:header binding voor het berichtonderdeel.

Storingen

Een FaultDescription exemplaar wordt toegewezen aan eenwsdl:operation//wsdl:portTypewsdl:fault definitie en de bijbehorende wsdl:message definitie. De wsdl:message naamruimte wordt toegevoegd aan dezelfde doelnaamruimte als het bijbehorende WSDL-poorttype. Het wsdl:message heeft één berichtonderdeel met de naam 'detail' dat verwijst naar het XML-schema-element dat overeenkomt met de DefaultType eigenschapswaarde voor het FaultDescription exemplaar.

Eigenschappen WSDL-toewijzing
Name De wsdl:portType//wsdl:operationwsdl:fault/@name-waarde voor de fout.
Namespace De naamruimte van het XML-schema-element waarnaar het onderdeel foutdetails verwijst.
Action De SOAP- of WS-adresseringsactie voor de fout.
ProtectionLevel Beveiligingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:message definitie voor deze fout.
DetailType Het XML-schematype van het element waarnaar het detailberichtonderdeel verwijst.
Name, ContractDescription.Name, OperationDescription.Name, Wordt gebruikt om de wsdl:message/@name-waarde voor het foutbericht af te leiden.

Zie ook