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:port Uç nokta için /@name değeri ve uç nokta bağlaması wsdl:binding iç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 ServiceEndpoint
wsdl: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 CreateBindingElements dö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:binding
eş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:port
eş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:binding
eşler. WCF, SOAP 1.1 ve SOAP 1.2 bağlamalarını destekler.
Sözleşmeler
Örneğin ContractDescription örneği ile ServiceEndpoint
wsdl:portType
eş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:portType iç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:operation
eş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:operation için /@msc:isInitiating değeri. Bu öznitelik, WSDL 1.1 için bir WCF uzantısıdır. |
IsTerminating |
İşlem wsdl:portType /wsdl:operation için /@msc:isTerminating değeri. Bu öznitelik, WSDL 1.1 için bir WCF uzantısıdır. |
Messages |
İşlemin wsdl:portType //wsdl:operation wsdl:input vewsdl:output wsdl:portType /wsdl:operation /iletileri. |
Faults |
İşlemin wsdl:portType //wsdl:operation wsdl: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 XsdDataContractExporter
dış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:binding wsdl: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 XmlSchemaExporter
dış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:binding wsdl:operation /soap:operation .Bu özniteliğin Use özelliği, işlemdekisoap:operation wsdl: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:operation
wsdl:input
/wsdl:portType
/ başvuruda bulunan birwsdl:output
wsdl: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.Input wsdl:input ile eşler.MessageDirection.Output wsdl:output ile 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:part wsdl:message /öğe adıyla @name eşler ve "parameters" olarak ayarlanır. |
WrapperNamespace |
Stil RPC değilse, WrapperNamespace "parameters" olarak ayarlanmış olarak öğesininwsdl:part wsdl: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:part bö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:portType
wsdl: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:operation wsdl:fault iç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. |