Aracılığıyla paylaş


ServiceDescription ve WSDL Başvurusu

Bu konuda, Windows Communication Foundation'ın (WCF) Web Hizmetleri Açıklama Dili (WSDL) belgelerini örneklerle ve örneklerle ServiceDescription nasıl eşlediği açıklanmaktadır.

ServiceDescription WSDL 1.1'e nasıl Haritalar

WSDL belgelerini hizmetinizin bir ServiceDescription örneğinden dışarı aktarmak için WCF kullanabilirsiniz. Meta veri uç noktalarını yayımladığınızda hizmetiniz için WSDL belgeleri otomatik olarak oluşturulur.

WSDL belgelerindeki örnekleri, örnekleri ve Binding örnekleri türünü kullanarak WsdlImporter da içeri aktarabilirsinizServiceEndpoint. ContractDescription

WCF tarafından dışarı aktarılan WSDL belgeleri, dış XML Şeması belgelerinden kullanılan XML Şeması tanımlarını içeri aktarır. Veri türlerinin hizmette kullandığı her hedef ad alanı için ayrı bir XML Şeması belgesi dışarı aktarılır. Benzer şekilde, hizmet sözleşmelerinin kullandığı her hedef ad alanı için ayrı bir WSDL belgesi dışarı aktarılır.

Servicedescription

Örnek ServiceDescription bir wsdl:service öğeye eşler. Bir ServiceDescription örnek, her birinin ServiceEndpoint tek tek wsdl:port öğelerle eşleyen bir örnek koleksiyonu içerir.

Properties WSDL eşlemesi
Name Hizmetin wsdl:service/@name değeri.
Namespace Hizmetin tanımı için wsdl:service targetNamespace.
Endpoints Hizmetin wsdl:port tanımları.

ServiceEndpoint

Örnek ServiceEndpoint bir wsdl:port öğeye eşler. Örnek ServiceEndpoint bir adres, bağlama ve sözleşme içerir.

Arabirimi uygulayan IWsdlExportExtension uç nokta davranışları, bağlı oldukları uç noktanın öğesini değiştirebilir wsdl:port .

Properties WSDL eşlemesi
Name wsdl:portUç nokta için /@name değeri ve uç nokta bağlaması wsdl:bindingiçin /@name değeri.
Address Uç nokta tanımının wsdl:port adresi.

Uç noktanın aktarımı adresin biçimini belirler. Örneğin, WCF destekli aktarımlar için bir SOAP adresi veya uç nokta başvurusu olabilir.
Binding wsdl:binding Uç noktanın tanımı.

Tanımlardan farklı olarak wsdl:binding , WCF'deki bağlamalar herhangi bir sözleşmeye bağlı değildir.
Contract wsdl:portType Uç noktanın tanımı.
Behaviors Arabirimini uygulayan IWsdlExportExtension uç nokta davranışları uç nokta için öğesini wsdl:port değiştirebilir.

Bağlamalar

Örneğin bağlama örneği bir ServiceEndpointwsdl:binding tanıma eşler. Belirli wsdl:portType bir tanımla ilişkilendirilmesi gereken tanımlardan farklı wsdl:binding olarak, WCF bağlamaları herhangi bir sözleşmeden bağımsızdır.

Bağlama, bağlama öğeleri koleksiyonundan oluşur. Her öğe, uç noktanın istemcilerle iletişim kurma şeklinin bazı yönlerini açıklar. Ayrıca, bir bağlama uç nokta için ve AddressingVersion öğesini belirten EnvelopeVersion bir MessageVersion bağlamaya sahiptir.

Properties WSDL eşlemesi
Name Bir uç noktanın varsayılan adında kullanılır. Bu, sözleşme adı alt çizgiyle ayrılmış olarak eklenmiş bağlama adıdır.
Namespace targetNamespace tanımı içinwsdl:binding.

İçeri aktarma işleminde, WSDL bağlantı noktasına bir ilke ekliyse, içeri aktarılan bağlama ad alanı tanımı için wsdl:port ile targetNamespace eşler.
BindingElementCollection, () yöntemi tarafından CreateBindingElementsdöndürülen Tanımın wsdl:binding etki alanına özgü çeşitli uzantıları, genellikle ilke onayları.
MessageVersion EnvelopeVersion Uç nokta için veAddressingVersion.

Belirtildiğinde MessageVersion.None , WSDL bağlaması soap bağlaması içermez ve WSDL bağlantı noktası WS-Adresleme içeriği içermez. Bu ayar genellikle düz eski XML (POX) uç noktaları için kullanılır.

BindingElements

Uç nokta bağlaması için bağlama öğeleri, içinde ilke onayları gibi çeşitli WSDL uzantılarıyla wsdl:bindingeşler.

TransportBindingElement bağlaması, SOAP bağlaması için aktarım Tekdüzen Kaynak Tanımlayıcısı'nı (URI) belirler.

Addressingversion

AddressingVersion Bir bağlama üzerindeki, içinde kullanılan adresleme sürümüne wsd:porteşler. WCF, SOAP 1.1 ve SOAP 1.2 adreslerini ve WS-Addressing 08/2004 ve WS-Addressing 1.0 uç nokta başvurularını destekler.

Envelopeversion

EnvelopeVersion bir bağlama üzerinde, içinde kullanılan SOAP sürümüyle wsdl:bindingeşler. WCF, SOAP 1.1 ve SOAP 1.2 bağlamalarını destekler.

Sözleşmeler

Örneğin ContractDescription örneği ile ServiceEndpointwsdl:portTypeeşler. Bir ContractDescription örnek, belirli bir sözleşme için tüm işlemleri açıklar.

Properties WSDL eşlemesi
Name Sözleşmenin wsdl:portType/@name değeri.
Namespace Tanımın targetNamespace'i wsdl:portType .
SessionMode Sözleşme wsdl:portTypeiçin /@msc:usingSession değeri. Bu öznitelik, WSDL 1.1 için bir WCF uzantısıdır.
Operations Sözleşmenin wsdl:operation tanımları.

Operations

Bir OperationDescription örnek ile wsdl:portType/wsdl:operationeşler. , OperationDescription işlemin iletilerini açıklayan bir örnek koleksiyonu MessageDescription içerir.

İki işlem davranışı, bir OperationDescription WSDL belgesine nasıl eşlendiğine büyük ölçüde katılır: DataContractSerializerOperationBehavior ve XmlSerializerOperationBehavior.

Properties WSDL eşlemesi
Name İşlemin wsdl:portType/wsdl:operation/@name değeri.
ProtectionLevel Bu işlem için iletilere eklenen güvenlik ilkesindeki wsdl:binding/wsdl:operation koruma onayları.
IsInitiating İşlem wsdl:portType/wsdl:operationiçin /@msc:isInitiating değeri. Bu öznitelik, WSDL 1.1 için bir WCF uzantısıdır.
IsTerminating İşlem wsdl:portType/wsdl:operationiçin /@msc:isTerminating değeri. Bu öznitelik, WSDL 1.1 için bir WCF uzantısıdır.
Messages İşlemin wsdl:portType//wsdl:operationwsdl:input vewsdl:outputwsdl:portType/wsdl:operation/iletileri.
Faults İşlemin wsdl:portType//wsdl:operationwsdl:fault tanımları.
Behaviors DataContractSerializerOperationBehavior ve XmlSerializerOperationBehavior işlem bağlaması ve işlem iletileriyle ilgilenir.

The DataContractSerializerOperationBehavior

DataContractSerializerOperationBehavior bir işlem için, WSDL iletilerini ve bu işlem için bağlamayı dışarı aktaran bir IWsdlExportExtension uygulamadır. XML Şeması türleri kullanılarak XsdDataContractExporterdışarı aktarılır. ayrıca DataContractSerializerOperationBehavior , bu işlem için kullanılacak kullanımı, stili ve şemayı vereni ve içeri aktarıcıyı belirler.

Properties WSDL Eşlemesi
DataContractFormatAttribute Bu özniteliğin Style özelliği, işlemin /@style değeriyle eşler/wsdl:bindingwsdl:operation/soap:operation.

yalnızca DataContractSerializerOperationBehavior WSDL'deki şema türlerinin değişmez kullanımını destekler.

The XmlSerializerOperationBehavior

XmlSerializerOperationBehavior bir işlem için, WSDL iletilerini ve bu işlem için bağlamayı dışarı aktaran bir IWsdlExportExtension uygulamadır. XML Şeması türleri kullanılarak XmlSchemaExporterdışarı aktarılır. ayrıca XmlSerializerOperationBehavior , bu işlem için kullanılacak kullanımı, stili ve şemayı vereni ve içeri aktarıcıyı belirler.

Properties WSDL eşlemesi
XmlSerializerFormatAttribute Bu özniteliğin Style özelliği, işlemin /@style değeriyle eşler/wsdl:bindingwsdl:operation/soap:operation.

Bu özniteliğin Use özelliği, işlemdekisoap:operationwsdl:binding/wsdl:operation/ tüm iletiler için /*/@use değerleriyle eşler.

İletiler

Bir MessageDescription örnek, bir işlemdeki bir wsdl:message veya iletisi tarafındanwsdl:operationwsdl:input/wsdl:portType/ başvuruda bulunan birwsdl:outputwsdl:portType/wsdl:operation/ile eşler. A'nın MessageDescription gövdesi ve üst bilgileri vardır.

Properties WSDL Eşlemesi
Action İleti için SOAP veya WS-Addressing eylemi.

"*" Eylem dizesini kullanan işlemlerin WSDL'de temsil edilmediğini unutmayın.
Direction MessageDirection.Inputwsdl:inputile eşler.

MessageDirection.Outputwsdl:outputile eşler.
ProtectionLevel Bu iletinin tanımına eklenen güvenlik ilkesinde koruma wsdl:message onayları.
Body İletinin ileti gövdesi.
Headers İletinin üst bilgileri.
ContractDescription.Name, OperationContract.Name Dışarı aktarmada wsdl:message, /@name değerini türetmek için kullanılır.

İleti Gövdesi

Örnek MessageBodyDescription , ileti gövdesinin wsdl:message/wsdl:part tanımlarıyla eşler. İleti gövdesi sarmalanmış veya çıplak olabilir.

Properties WSDL Eşlemesi
WrapperName Stil RPC değilse, WrapperName ile tarafından başvuruda bulunanwsdl:partwsdl:message/öğe adıyla @name eşler ve "parameters" olarak ayarlanır.
WrapperNamespace Stil RPC değilse, WrapperNamespace "parameters" olarak ayarlanmış olarak öğesininwsdl:partwsdl:message/öğe ad alanıyla @name eşler.
Parts Bu ileti gövdesinin ileti bölümleri.
ReturnValue Sarmalayıcı öğesi varsa sarmalayıcı öğesinin alt öğesi (belge sarmalanmış stili veya RPC stili), aksi takdirde iletideki ilk wsdl:message/wsdl:part öğedir.

İleti Bölümleri

Örnek MessagePartDescription , ileti bölümünün işaret olduğu bir wsdl:message/wsdl:part ve XML şema türüne veya öğesine eşler.

Properties WSDL eşlemesi
Name İleti wsd:message/wsdl:partbölümünün /@name değeri ve ileti bölümünün işaret olduğu öğenin adı.
Namespace İleti bölümünün işaret olduğu öğenin ad alanı.
Index İletinin wsdl:message/wsdl:part dizini.
ProtectionLevel Bu ileti bölümünün tanımına eklenen güvenlik ilkesinde wsdl:message koruma onayları. İlke, belirli ileti bölümüne işaret etmek için parametrelendirilir.
MessageType İleti bölümünün işaret olduğu öğenin XML Şeması türü.

İleti Üst Bilgileri

MessageHeaderDescription Örnek, ileti bölümü için bir bağlamaya da eşleyen bir soap:header ileti bölümüdür.

Hatalar

ÖrnekFaultDescription, birwsdl:operation//wsdl:portTypewsdl:fault tanım ve ilişkili wsdl:message tanımıyla eşler. , wsdl:message ilişkili WSDL bağlantı noktası türüyle aynı hedef ad alanına eklenir. , wsdl:message örneğin özellik değerine FaultDescription karşılık gelen XML Şeması öğesine işaret DefaultType eden "detail" adlı tek bir ileti bölümüne sahiptir.

Properties WSDL eşlemesi
Name Hata wsdl:portType//wsdl:operationwsdl:faultiçin /@name değeri.
Namespace Hata ayrıntı iletisi bölümünün işaret olduğu XML Şeması öğesinin ad alanı.
Action Hata için SOAP veya WS-Addressing eylemi.
ProtectionLevel Bu hatanın tanımına eklenen güvenlik ilkesinde wsdl:message koruma onayları.
DetailType Ayrıntı iletisi bölümünün işaret olduğu öğenin XML Şeması türü.
Name, ContractDescription.Name, OperationDescription.Name, Hata iletisi için wsdl:message/@name değerini türetmek için kullanılır.

Ayrıca bkz.