2 bağlama, radikal olarak farklıdır.
NetTcpBinding
(genellikle ikili) RPC
kavram bakımından benzer olan bir MS özel biçimi olarak düşünülebilir (örneğin .NET Remoting
yerine kullanılabilir). Eşzamanlıdır, yani hem istemci hem de sunucu aynı anda çevrimiçi olmalı ve müşteri hemen bir yanıt (neredeyse) alır.
MSMQ
, Microsoft tarafından eşzamansız sıralar etrafında dönen bir Message Oriented Middleware çözümüdür (ör. İstemci bir ileti gönderdiğinde hedef sunucu çevrimdışıysa, sunucu çevrimiçi duruma dönene kadar istemcide sıraya alınır. Her sıra sadece bir yoldur, ancak çift yönlü iletişim, sunucudan istemciye ikinci bir sırayla sağlanabilir. WCF MSMQ iletileri göndermek istemciye MSMQ
Hizmeti'nin yüklenmesini gerektirir. Sıradaki iletilerin teslim edilebileceği bir zaman aşımı olabilir, ancak geçerli bir ölü harf sırasına yerleştirilir.
Gerçek dünyadan örnekler:
- Ben yüksek performans için ikili seri, Microsoft WCF istemci ve sunucu arasındaki örneğin senkron iletişim ihtiyaçları olan
NetTcpBinding
kullanırsınız dosya yükleme, vb medya Xml
- Ben DTC ile
MSMQBinding
kullanmak istiyorsunuz (ben senkron Xml
/SOAP
mesajlaşma için wsHttpBinding
kullanmak istiyorsunuz, aksi) yararlı olmayacağı yerlerde birlikte, (örneğin mali) 2 veya daha fazla sistem arasında güvenilir mesajlaşma sağlamak için etkin en az .NET olan son noktalardan birini ve bir 'Uyumlu' sunucu (ille WCF
, örneğin BizTalk
veya EAI
göbekler veya MSMQ
için bağdaştırıcısı ESB
otobüsler diğer, örneğin Köprü MSMQ and MQSeries
arasında var). İletiler genellikle Xml
biçiminde olur.
TL;
DR
bu hizmeti kullanmaya hizmeti hala çalışıyor olsa bile müşteri anlamına mı
Evet. Yerel olarak MSMQ
çalışıyorsa, istemciye () yanıtının hemen döndürülmesi (iletinin sıraya alındığını gösterir). Bu, mesajın sunucu tarafından başarılı bir şekilde alındığı anlamına gelmez.
Harika bir yanıt, çok sayıda karmaşık sistemde yaygın olarak kullanılan WCF kullandım ve sadece iki sentümü eklemek istedim. 1. RESTful web servislerinden yoksun bir şey sağladıkları çok özel kullanım durumları haricinde WCF'ye öntanım yapmaktan kaçının; WCF'nin baş ağrısının 9/10 katı sadece ödüle değmez. 2. NetTcpBinding, kişisel deneyimimde tartışmasız en iyi (ve kesinlikle en hızlı - adlandırılmış borular hariç) ciltleme seçeneğidir. Bununla birlikte, posterin açıkladığı gibi herhangi bir fazlalık yapmaz. –
Kabul - 4 yıl geçti ve şimdi xml JSON hizmetleri tarafından çoğaltılıyor ve WebApi artık RESTful bir dünyada WCF'yi geride bıraktı. – StuartLC