Bir Web Hizmeti tüketmem gerekiyor. Bana WSDL dosyasını gönderdiler. Web siteme eklemek ve proxy olarak kullanmaya başlamak için ne yapmalıyım? (Sanal Dizine koyarsam keşfedilebilir, ancak bana gerçek web hizmeti ile bağlantı sağlar mı?)
Bir Web Hizmeti tüketmem gerekiyor. Bana WSDL dosyasını gönderdiler. Web siteme eklemek ve proxy olarak kullanmaya başlamak için ne yapmalıyım? (Sanal Dizine koyarsam keşfedilebilir, ancak bana gerçek web hizmeti ile bağlantı sağlar mı?)
Yanıtlar:
Visual Studio'yu çalıştırırdım, bir web projesi (veya konsol uygulaması - önemli değil) oluştururdum.
.Net Standardı için:
Hata yoksa, hizmete erişmek için kullanmak istediğiniz NameSpace'i ayarlamanız yeterlidir ve sizin için oluşturulacaktır.
.Net Core için
Yukarıdaki yöntemlerden herhangi biri, kullanmanız için basit, çok basit bir WCF istemcisi oluşturacaktır. Oluşturulan kodda bir "YourservicenameClient" sınıfı bulmalısınız.
Referans amaçlı olarak, oluşturulan cs dosyası Obj / debug (veya release) / XsdGeneratedCode içinde bulunabilir ve dll'leri TempPE klasöründe hala bulabilirsiniz.
Oluşturulan Hizmet (ler), WSDL sözleşmesinde tanımlanan yöntemlerin her biri için yöntemlere sahip olmalıdır.
İstemciyi somutlaştırın ve aramak istediğiniz yöntemleri çağırın - hepsi bu!
YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
Uzak URL'yi belirtmeniz gerekiyorsa (varsayılan olarak oluşturulmuş olanı kullanmadan), bunu proxy istemcisinin yapıcısında kolayca yapabilirsiniz:
YourServiceClient client = new YourServiceClient("configName", "remoteURL");
burada configName
kullanılacak uç noktanın adı (URL dışındaki tüm ayarları kullanacaksınız) ve remoteURL
bağlanılacak URL'yi temsil eden bir dizedir (yapılandırmada yer alan yerine).
Görsel stüdyoda.
Hata yoksa, nesne tarayıcısında ve ilgili tüm yöntemlerde hizmet referansını görebilmeniz gerekir.
WSDL'den bir Web Hizmeti proxy'si oluşturmak için WSDL.EXE yardımcı programını kullanın .
Şuna benzeyen bir sınıf içeren uzun bir C # kaynak dosyası alacaksınız:
/// <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 {
...
}
İstemci tarafınızda, Web hizmetini tüketen kod:
.Net Core projesine wsdl referansı eklemek isterseniz "Web referansı ekle" seçeneği yoktur.
Wsdl başvurusunu eklemek için Çözüm Gezgini'ne gidin, Başvurular proje öğesine sağ tıklayın ve ardından Bağlı Hizmet Ekle seçeneğine tıklayın .
Ardından 'Microsoft WCF Web Hizmeti Başvurusu'nu tıklayın:
Dosya yolunu URI metin kutusuna girin ve WSDL'yi içe aktarın:
Basit, çok temel bir WCF istemcisi oluşturacak ve bunu şunun gibi kullanacaksınız:
YourServiceClient client = new YourServiceClient();
client.DoSomething();