Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento descrive in che modo Windows Communication Foundation (WCF) esegue il mapping dei documenti WSDL (Web Services Description Language) verso e da ServiceDescription le istanze.
Come ServiceDescription si collega a WSDL 1.1
È possibile usare WCF per esportare documenti WSDL da un'istanza ServiceDescription del servizio. I documenti WSDL vengono generati automaticamente per il servizio quando si pubblicano endpoint di metadati.
È anche possibile importare ServiceEndpoint istanze, ContractDescription istanze e Binding istanze da documenti WSDL usando il WsdlImporter tipo .
I documenti WSDL, esportati da WCF, importano tutte le definizioni di XML Schema usate da documenti XML Schema esterni. Un documento XML Schema separato viene esportato per ogni namespace di destinazione che i tipi di dati utilizzano nel servizio. Analogamente, viene esportato un documento WSDL separato per ogni spazio dei nomi di destinazione usato dai contratti di servizio.
Descrizione del servizio
Un'istanza ServiceDescription esegue il mapping a un wsdl:service elemento. Un'istanza ServiceDescription contiene una raccolta di ServiceEndpoint istanze mappate a singoli wsdl:port elementi.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Il valore wsdl:service/@name del servizio. |
Namespace |
TargetNamespace per la wsdl:service definizione del servizio. |
Endpoints |
Definizioni wsdl:port per il servizio. |
Endpoint del servizio
Un'istanza ServiceEndpoint esegue il mapping a un wsdl:port elemento. Un'istanza ServiceEndpoint contiene un indirizzo, un binding e un contratto.
I comportamenti degli endpoint che implementano l'interfaccia IWsdlExportExtension possono modificare l'elemento wsdl:port per l'endpoint a cui sono collegati.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Il valore wsdl:port/@name per l'endpoint e il valore wsdl:binding/@name per il binding dell'endpoint. |
Address |
Indirizzo della definizione per l'endpoint wsdl:port.Il sistema di trasporto per l'endpoint determina il formato dell'indirizzo. Ad esempio, per i trasporti supportati da WCF può essere un indirizzo SOAP o un riferimento all'endpoint. |
Binding |
Definizione wsdl:binding per l'endpoint.A differenza delle wsdl:binding definizioni, i binding in WCF non sono vincolati a nessun contratto. |
Contract |
Definizione wsdl:portType per l'endpoint. |
Behaviors |
I comportamenti degli endpoint che implementano l'interfaccia IWsdlExportExtension possono modificare l'endpoint per wsdl:port. |
Collegamenti
L'istanza di associazione per un'istanza ServiceEndpoint si mappa a una definizione wsdl:binding. A differenza delle wsdl:binding definizioni, che devono essere associate a una definizione specifica wsdl:portType , le associazioni WCF sono indipendenti da qualsiasi contratto.
Un'associazione è costituita da una raccolta di elementi di associazione. Ogni elemento descrive alcuni aspetti del modo in cui l'endpoint comunica con i client. Inoltre, un'associazione ha un elemento MessageVersion che indica gli EnvelopeVersion e AddressingVersion per l'endpoint.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Usato nel nome predefinito di un endpoint, ovvero il nome dell'associazione con il nome del contratto aggiunto separato da un carattere di sottolineatura. |
Namespace |
La targetNamespace per la definizione di wsdl:binding.In caso di importazione, se un criterio è collegato alla porta WSDL, lo spazio dei nomi dell'associazione importato viene mappato su targetNamespace per la definizione di wsdl:port. |
BindingElementCollection, come restituito dal CreateBindingElementsmetodo () |
Varie estensioni specifiche del dominio alla wsdl:binding definizione, in genere asserzioni di criteri. |
MessageVersion |
Il EnvelopeVersion e il AddressingVersion per l'endpoint.Quando MessageVersion.None viene specificato, il binding WSDL non contiene un binding SOAP e la porta WSDL non contiene WS-Addressing. Questa impostazione viene in genere usata per gli endpoint XML (POX) semplici. |
Elementi di associazione
Gli elementi di binding per un'associazione di endpoint vengono mappati su varie estensioni WSDL in wsdl:binding, come le asserzioni di criteri di policy.
L'oggetto TransportBindingElement per l'associazione determina l'URI (Uniform Resource Identifier) di trasporto per un'associazione SOAP.
VersioneDiIndirizzamento
AddressingVersion in un'associazione mappa alla versione di indirizzamento usata in wsd:port. WCF supporta indirizzi SOAP 1.1 e SOAP 1.2, e endpoint di riferimento WS-Addressing 08/2004 e WS-Addressing 1.0.
EnvelopeVersion
Il EnvelopeVersion in un'associazione si mappa alla versione di SOAP utilizzata in wsdl:binding. WCF associa le SOAP 1.1 e SOAP 1.2.
Contratti
L'istanza ContractDescription per un'istanza ServiceEndpoint corrisponde a un wsdl:portType. Un'istanza ContractDescription descrive tutte le operazioni per un determinato contratto.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Il valore wsdl:portType/@name del contratto. |
Namespace |
TargetNamespace per la wsdl:portType definizione. |
SessionMode |
Il valore wsdl:portType/@msc:usingSession per il contratto. Questo attributo è un'estensione WCF per WSDL 1.1. |
Operations |
Le definizioni wsdl:operation del contratto. |
Operazioni
Un'istanza OperationDescription corrisponde a un wsdl:portType/wsdl:operation. Un OperationDescription contiene una raccolta di istanze MessageDescription che descrivono i messaggi per l'operazione.
Due comportamenti dell'operazione partecipano principalmente alla modalità di mapping di un oggetto OperationDescription a un documento WSDL: DataContractSerializerOperationBehavior e XmlSerializerOperationBehavior.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Il valore dell'operazione per wsdl:portType/wsdl:operation/@name. |
ProtectionLevel |
Asserzioni di protezione nelle politiche di sicurezza associate ai wsdl:binding/wsdl:operation messaggi per questa operazione. |
IsInitiating |
Il valore wsdl:portType/wsdl:operation/@msc:isInitiating per l'operazione. Questo attributo è un'estensione WCF per WSDL 1.1. |
IsTerminating |
Il valore wsdl:portType/wsdl:operation/@msc:isTerminating dell'operazione. Questo attributo è un'estensione WCF per WSDL 1.1. |
Messages |
Messaggi wsdl:portType/wsdl:operation/wsdl:input e wsdl:portType/wsdl:operation/wsdl:output per l'operazione. |
Faults |
Definizioni wsdl:portType/wsdl:operation/wsdl:fault per l'operazione. |
Behaviors |
DataContractSerializerOperationBehavior e XmlSerializerOperationBehavior gestiscono le associazioni delle operazioni e i messaggi delle operazioni. |
ComportamentoOperazioneSerializerContrattoDati
Il DataContractSerializerOperationBehavior per un'operazione è un'implementazione IWsdlExportExtension che esporta i messaggi WSDL e il binding per quella operazione. I tipi di XML Schema vengono esportati utilizzando .XsdDataContractExporter Determina anche l'utilizzo, lo stile e l'esportatore e importatore di schema da utilizzare per tale operazione.
| Proprietà | Mappatura WSDL |
|---|---|
DataContractFormatAttribute |
La Style proprietà per questo attributo mappa al valore wsdl:binding/wsdl:operation/soap:operation/@style per l'operazione.DataContractSerializerOperationBehavior supporta solo l'uso letterale dei tipi di schema nel linguaggio WSDL. |
The XmlSerializerOperationBehavior
Il XmlSerializerOperationBehavior per un'operazione è un'implementazione IWsdlExportExtension che esporta i messaggi WSDL e il binding per quella operazione. I tipi di XML Schema vengono esportati utilizzando .XmlSchemaExporter Determina anche l'utilizzo, lo stile e l'esportatore e importatore di schema da utilizzare per tale operazione.
| Proprietà | Mapping WSDL |
|---|---|
XmlSerializerFormatAttribute |
La Style proprietà per questo attributo mappa al valore wsdl:binding/wsdl:operation/soap:operation/@style per l'operazione.La proprietà Use di questo attributo mappa ai valori wsdl:binding/wsdl:operation/soap:operation/*/@use per tutti i messaggi nell'operazione. |
Messaggi
Un'istanza MessageDescription esegue il mapping a un wsdl:message, a cui fa riferimento un wsdl:portType/wsdl:operation/wsdl:input o un wsdl:portType/wsdl:operation/wsdl:output messaggio in un'operazione. Un MessageDescription ha un corpo e delle intestazioni.
| Proprietà | Mappatura WSDL |
|---|---|
Action |
Azione SOAP o WS-Addressing per il messaggio. Si noti che le operazioni che usano la stringa di azione "*" non sono rappresentate in WSDL. |
Direction |
MessageDirection.Input viene mappato su wsdl:input.MessageDirection.Output viene mappato su wsdl:output. |
ProtectionLevel |
Asserzioni di protezione nei criteri di sicurezza associate alla wsdl:message definizione per questo messaggio. |
Body |
Corpo del messaggio. |
Headers |
Le intestazioni del messaggio. |
ContractDescription.Name, OperationContract.Name |
Durante l'esportazione, usato per derivare il valore di wsdl:message/@name. |
Corpo del messaggio
Un'istanza MessageBodyDescription viene mappata alle definizioni wsdl:message/wsdl:part per il corpo di un messaggio. Il corpo del messaggio può essere incapsulato o nudo.
| Proprietà | Mappatura WSDL |
|---|---|
WrapperName |
Se lo stile non è RPC, allora WrapperName corrisponde al nome dell'elemento riferito da wsdl:message/wsdl:part, con @name impostato su "parameters". |
WrapperNamespace |
Se lo stile non è RPC, allora il WrapperNamespace mappa allo spazio dei nomi dell'elemento per wsdl:message/wsdl:part con @name impostato su "parameters". |
Parts |
Parti del messaggio per questo corpo del messaggio. |
ReturnValue |
Elemento figlio dell'elemento wrapper se esiste un elemento wrapper (stile di wrapping del documento o stile RPC), altrimenti il primo wsdl:message/wsdl:part nel messaggio. |
Parti del messaggio
Un'istanza MessagePartDescription corrisponde a wsdl:message/wsdl:part e al tipo o all'elemento dello schema XML a cui fa riferimento la parte del messaggio.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Valore wsd:message/wsdl:part/@name per la parte del messaggio e il nome dell'elemento a cui punta la parte del messaggio. |
Namespace |
Spazio dei nomi dell'elemento a cui punta la parte del messaggio. |
Index |
Indice di wsdl:message/wsdl:part per il messaggio. |
ProtectionLevel |
Asserzioni di protezione nei criteri di sicurezza associate alla wsdl:message definizione per questa parte del messaggio. La politica viene parametrizzata per puntare alla parte specifica del messaggio. |
MessageType |
Tipo di XML Schema dell'elemento a cui punta la parte del messaggio. |
Intestazioni dei messaggi
Un'istanza di MessageHeaderDescription è una parte del messaggio che viene mappata anche su un'associazione soap:header relativa alla parte del messaggio.
Difetti
Un'istanza FaultDescription corrisponde a una definizione wsdl:portType/wsdl:operation/wsdl:fault e alla sua definizione associata wsdl:message. L'elemento wsdl:message viene aggiunto allo stesso spazio dei nomi di destinazione del tipo di porta WSDL a esso associato. Il wsdl:message ha una singola parte di messaggio denominata "detail" che punta all'elemento dello Schema XML che corrisponde al valore della proprietà DefaultType per l'istanza FaultDescription.
| Proprietà | Mapping WSDL |
|---|---|
Name |
Il valore wsdl:portType/wsdl:operation/wsdl:fault/@name per l'errore. |
Namespace |
Namespace dell'elemento Schema XML a cui fa riferimento la parte del messaggio di dettaglio dell'errore. |
Action |
Azione SOAP o WS-Addressing per l'errore. |
ProtectionLevel |
Asserzioni di protezione associate nei criteri di sicurezza alla definizione wsdl:message per questo errore. |
DetailType |
Tipo di XML Schema dell'elemento a cui punta la parte del messaggio di dettaglio. |
Name, ContractDescription.Name, OperationDescription.Name, |
Usato per derivare il valore wsdl:message/@name per il messaggio di errore. |