WSDL

2009-08-19 23 views
87

nasıl kullanılır Bir Web Hizmeti tüketmem gerekiyor. Bana WSDL dosyasını yolladılar. Web siteme eklemek ve proxy olarak kullanmaya başlamak için ne yapmalıyım? (Bir Sanal Dizine koyarsam keşfedilebilir, ancak bana gerçek web hizmeti ile bağlantı veriyor mu?)WSDL

+8

Eh ayarlayın. Bu kesin sorunu araştırıyordum ve burada bulduğum için mutluyum. – schizoid04

cevap

105

Visual Studio 2008'i tetikler, bir web projesi oluşturur (veya konsol uygulaması - fark etmez) ve ardından projeye sağ tıklayıp içerik menüsünden "Hizmet Referansı Ekle" yi seçerim.

Dosya yolunu ve adını kutuya girin ve WSDL'yi içe aktarın - bu, kullanmanız için basit, çok basit bir WCF istemcisi oluşturacaktır. WSDL sözleşmesinde tanımlanan yöntemlerin her biri için yöntemleri olması gereken, oluşturulan kodda "YourservicenameClient" sınıfı bulmalısınız.

İstemciyi örnek olarak çağırın ve aramak istediğiniz yöntemleri arayın - hepsi burada!

YourServiceClient client = new YourServiceClient(); 
client.SayHello("World!"); 

(varsayılan olarak oluşturulan birini kullanmıyorsanız) Uzak URL'sini belirtmek gerekirse, kolayca vekil müşteri yapıcısı yapabilirsiniz:

YourServiceClient client = new YourServiceClient("configName", "remoteURL"); 

configName adıdır Kullanılacak son noktadan (URL dışındaki tüm ayarları kullanırsınız) ve remoteURL, bağlanılacak URL'yi temsil eden bir dizedir (yapılandırmada bulunan yerine).

+0

Bu iyi çalışıyor. Sadece bir soru, eğer makinemde wsdl dosyası varsa ve bu dosyaya referans ekliyorum. Url'yi çalıştırırken, web servisini barındıran kişi mi, yoksa Bağlama ve Endpoint'i tanımlamalı mıyım? – jmayor

+1

Bu size kalmış - varsayılan olarak, istemci proxy'si için oluşturulan kod, WSDL içinde bulunan URL'ye sahip olacaktır - başka bir URL'ye gitmeniz gerekiyorsa, kendiniz belirtmeniz gerekir. –

+0

Bu neden bu kadar kolay? Bir yakalama yok mu? : p Teşekkürler! – Odys

34

Görsel stüdyonda.

  • Bir proje oluşturun veya açın.
  • Çözüm gezgininden projeye sağ tıklayın.
  • "Servis yanıtı ekle" yi seçin
  • Adresi aldığınız WSDL ile yapıştırın.
  • Tamam'ı tıklatın.

Hata yoksa, hizmet referansını nesne tarayıcısında ve tüm ilgili yöntemlerde görebilmeniz gerekir.

+8

<3 Visual Studio .. Evet, gerçekten bu kadar basit :) – cwap

+3

OP'nin bir adresi değil, bir dosyası var. WSDL dosyasının yolu/dosya adı için –

+7

yazın ...... –

13

WSDL'den bir Web Service proxy'si oluşturmak için WSDL.EXE utility'u kullanın.

şuna benzer bir sınıf içeren uzun bir C# kaynak dosyasını alırsınız: Müşteriniz tarafı ise

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")] 
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol { 
    ... 
} 

, Web hizmeti tüketen kodu:

  1. örneğini MyService .
  2. ben bir cevap görünce yararlanacak burada diğer kullanıcıları düşünmek bir soru çünkü upvoted, onun URL mülkiyet
  3. çağırmak Web yöntemleri
+4

Bu, "eski stil" bir ASMX Web hizmeti oluşturur - bunlar eski - eski teknolojinin kullanımını teşvik etmek için günümüzde WCF yerine şu anda –

+1

-1 kullanılmalıdır. –

+13

+1, diğer çözümler benim için çalışmadı. – Nuzzolilo