Web referansı ve hizmet referansı arasındaki fark nedir?


Yanıtlar:


102

Buradaki düşük seviyeli cevap, bir Web Referansının, kodunuzun WSDL aracılığıyla açıklanan ve SOAP veya HTTP GET aracılığıyla iletişim kuran bir Web Hizmeti ile konuşmasına izin veren bir istemci proxy sınıfı oluşturacağıdır (diğer posterler bunun yalnızca ASMX olduğunu belirtir, ancak Web Referansları, hepsi WSDL konuştukları ve WS-I birlikte çalışabilirlik standardına uydukları sürece Java tabanlı Web Hizmetleri veya Python tabanlı veya Ruby ile de konuşabilir.

Bir Hizmet Referansı, WCF tabanlı bir hizmetle iletişim kuran bir istemci proxy sınıfı oluşturur: bu WCF hizmetinin bir Web Hizmeti olup olmadığına bakılmaksızın.


1
Doğru biçimlendirilmiş
WSDL'ye

Peki, java tabanlı bir web hizmetine bir hizmet referansı ekleyebilir miyim? Yine de mantıklı olur mu? Java wcf yığını hakkında hiçbir şey bilmediğinden ...
user20358

evet, bir wsdl'ye sahipse, java vb. web hizmetlerine bir hizmet referansı ekleyebilirsiniz. Servis referansı, bu durumda onu "klasik" bir web referansı olarak değerlendirecektir.
Brady Moritz

Web Hizmetinin WSDL'de tanımlanan web hizmetlerinin yanı sıra ASMX'i de kullanabileceğini belirten +1. Aslında, web referansı ve hizmet referansı olan bir iş katmanım var. Web referansı bir WSDL web hizmetini tüketirken, hizmet referansı bir ASMX hizmetini tüketir.
Jagd

67

Web Referansı, WS-I Temel Profil 1.1'i uygulayan herhangi bir teknolojiye dayalı herhangi bir hizmetle iletişim kurmanıza olanak tanır ve ilgili meta verileri WSDL olarak gösterir. Dahili olarak, istemci tarafındaki ASMX iletişim yığınını kullanır.

Bir Hizmet Referansı, WCF tarafından desteklenen (WS-I Temel Profil dahil, ancak bununla sınırlı olmamak üzere) birçok protokolü uygulayan herhangi bir teknolojiye dayalı herhangi bir hizmetle iletişim kurmanıza olanak tanır. Dahili olarak, istemci tarafındaki WCF iletişim yığınını kullanır.

Bu tanımların her ikisinin de oldukça geniş olduğunu ve her ikisinin de .NET ile yazılmayan hizmetleri içerdiğini unutmayın.

WCF uç noktası basicHttpBindingveya bazı uyumlu özel varyantları kullandığı sürece, bir WCF hizmetine işaret eden bir Web Referansı eklemek tamamen mümkündür (ancak önerilmez) .

Bir ASMX hizmetine işaret eden bir Hizmet Referansı eklemek de mümkündür. Yeni kod yazarken , daha esnek ve geleceğe yönelik olduğu için her zaman bir Servis Referansı kullanmalısınız .


1
Hizmet Referansı aracılığıyla bir hizmeti nasıl kullanacağım konusunda beni başlatan var mı? Web Referansı ile, her zaman bir tür hizmet nesnesinde temel işlevleri bulabilirim. Bir Servis Referansı ile çok değil. Örnek olarak, çeşitli FedEx gönderi seçenekleri için fiyat almak üzere FedEx oranları hizmetini kullanmaya çalışıyorum. Orada bir yerde bir getRates () çağrısı olduğunu biliyorum, ancak bunu bir Servis Referansı ile bulamıyorum.
Ben Mills

@BenMills: Son Clienteki olan bir sınıf arayın .
Christian Hayter

17

Hizmet referansı, WCF hizmetlerinin her türüne (web hizmetleri olmayabilir) referans eklemek için daha yeni bir arabirim iken, Web referansı özellikle ASMX web referansları ile ilgilidir.

Servis referansı ekle'deki gelişmiş seçenekler aracılığıyla web referanslarına erişebilirsiniz (doğru hatırlıyorsam).

Servis referansını kullanırım çünkü anladığım kadarıyla bu, ikisinin daha yeni mekanizması.


8
Servis Referansı Ekle -> Gelişmiş -> Web Referansı Ekle ... hiçbir şey sezgisel olmayan çözümler gibi değildir.
Jagd

7

Hizmet referansları, tamamen yapılandırılabilir olan uç noktalar ve bağlamalarla ilgilenir. Herhangi bir aktarım protokolü (HTTP, TCP, Paylaşılan Bellek, vb.) Aracılığıyla istemci proxy'nizi bir WCF'ye yönlendirmenize izin verirler.

WCF ile çalışmak üzere tasarlanmıştır.

Bir WebProxy kullanıyorsanız, kendinizi HTTP üzerinden WCF kullanmaya büyük ölçüde bağlıyorsunuz


5

Dikkate alınması gereken bir diğer nokta da, Servis Arayüzü için yeni kullanıcı arayüzünün, proxy sınıfınızı nasıl oluşturmak istediğiniz konusunda size çok daha fazla esneklik sağlayacağıdır. Örneğin, eğer eşleşiyorlarsa, veri sözleşmelerini mevcut dll'lerle eşleştirmenize olanak tanır (aslında bu varsayılan davranıştır).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.