Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit onderwerp wordt beschreven hoe WSDL-documenten (Web Services Description Language) door Windows Communication Foundation (WCF) worden toegewezen aan en van ServiceDescription exemplaren.
Hoe ServiceDescription overeenkomt met 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 ServiceEndpoint exemplaren, ContractDescription exemplaren en Binding exemplaren uit WSDL-documenten importeren 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.
Beschrijving van de dienst
Een ServiceDescription exemplaar komt overeen met 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 waarde wsdl:service/@name voor de service. |
Namespace |
De TargetNamespace voor de wsdl:service definitie voor de service. |
Endpoints |
De wsdl:port definities voor de service. |
Service-eindpunt
Een ServiceEndpoint exemplaar komt overeen met een wsdl:port element. Een ServiceEndpoint exemplaar bevat een adres, een binding en een contract.
Eindpuntgedragingen die de IWsdlExportExtension interface implementeren, kunnen 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. |
Verbindingen
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 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 |
De EnvelopeVersion en AddressingVersion voor het eindpunt.Wanneer MessageVersion.None is opgegeven, bevat de WSDL-binding geen SOAP-binding en bevat de WSDL-poort geen WS-Addressing-content. Deze instelling wordt doorgaans gebruikt voor gewone OUDE XML-eindpunten (POX). |
Bindende Elementen
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.
VersieVoorAdressering
De AddressingVersion in een binding komt overeen met de versie van adressering die in de wsd:port wordt gebruikt. 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 komt overeen met een wsdl:portType. In ContractDescription instantie worden alle bewerkingen voor een bepaald contract beschreven.
| Eigenschappen | WSDL-toewijzing |
|---|---|
Name |
De wsdl:portType/@name-waarde 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. |
Bedrijfsactiviteiten
Een OperationDescription exemplaar komt overeen met een wsdl:portType/wsdl:operation. Een OperationDescription bevat een verzameling MessageDescription instanties 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 waarde van wsdl:portType/wsdl:operation/@name voor de bewerking. |
ProtectionLevel |
Beschermingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:binding/wsdl:operation berichten voor deze bewerking. |
IsInitiating |
De wsdl:portType/wsdl:operation/@msc:isInitiating waarde voor de bewerking. Dit kenmerk is een WCF-extensie voor WSDL 1.1. |
IsTerminating |
De wsdl:portType/wsdl:operation/@msc:isTerminating-waarde voor de bewerking. Dit kenmerk is een WCF-extensie voor WSDL 1.1. |
Messages |
De wsdl:portType/wsdl:operation/wsdl:input en wsdl:portType/wsdl:operation/wsdl:output berichten voor de bewerking. |
Faults |
De wsdl:portType/wsdl:operation/wsdl:fault definities voor de bewerking. |
Behaviors |
De DataContractSerializerOperationBehavior en XmlSerializerOperationBehavior houden zich bezig met de bewerkingsbinding en de bewerkingsberichten. |
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 de manier van gebruik, de stijl en de schema-exporteur en -importeur voor die bewerking.
| Eigenschappen | WSDL-toewijzing |
|---|---|
DataContractFormatAttribute |
De Style-eigenschap voor dit kenmerk komt overeen met de wsdl:binding/wsdl:operation/soap: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 de manier van gebruik, de stijl en de schema-exporteur en -importeur voor die bewerking.
| Eigenschappen | WSDL-toewijzing |
|---|---|
XmlSerializerFormatAttribute |
De Style-eigenschap voor dit kenmerk komt overeen met de wsdl:binding/wsdl:operation/soap:operation/@style-waarde voor de bewerking.De Use eigenschap voor dit kenmerk komt overeen met de wsdl:binding/wsdl:operation/soap:operation/*/@use waarden voor alle berichten in de bewerking. |
Berichten
Een MessageDescription voorstelling wordt toegewezen aan een wsdl:message waaraan wordt gerefereerd door een wsdl:portType/wsdl:operation/wsdl:input of een wsdl:portType/wsdl:operation/wsdl:output bericht in een bewerking. A MessageDescription heeft een hoofdtekst en kopteksten.
| Eigenschappen | WSDL-toewijzing |
|---|---|
Action |
De SOAP- of WS-Addressing-actie 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. |
Berichtinhoud
Een MessageBodyDescription exemplaar wordt gekoppeld aan de wsdl:message/wsdl:part definities voor de inhoud van een bericht. De hoofdtekst van het bericht kan worden verpakt of ontbloot.
| Eigenschappen | WSDL-toewijzing |
|---|---|
WrapperName |
Als de stijl niet RPC is, dan wordt de naam die aan het WrapperName-element is toegewezen, verwezen door de wsdl:message/wsdl:part en is de @name ingesteld op 'parameters'. |
WrapperNamespace |
Als de stijl niet RPC is, wordt de WrapperNamespace toegewezen aan de elementennaamruimte voor de wsdl:message/wsdl:part met @name ingesteld op 'parameters'. |
Parts |
De berichtonderdelen voor deze berichttekst. |
ReturnValue |
Het onderliggende element van het wrapper-element, indien er een wrapper-element bestaat (document-wrapped stijl, of RPC-stijl), anders het eerste wsdl:message/wsdl:part in het bericht. |
Berichtonderdelen
Een MessagePartDescription exemplaar komt overeen met een wsdl:message/wsdl:part en het XML-schematype of -element waarnaar het berichtdeel 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 |
Beschermingsclaims in het 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 berichtgedeelte dat ook is gekoppeld aan een soap:header binding voor het berichtgedeelte.
Storingen
Een FaultDescription exemplaar wordt toegewezen aan een wsdl:portType/wsdl:operation/wsdl: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:operation/wsdl:fault/@name-waarde voor de fout. |
Namespace |
De naamruimte van het XML-schema-element waarnaar het onderdeel foutdetails verwijst. |
Action |
De SOAP- of WS-Addressing-actie voor de fout. |
ProtectionLevel |
Beveiligingsverklaringen in het beveiligingsbeleid die gekoppeld zijn aan de wsdl:message specificatie 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. |