2012-09-10 20 views

cevap

9

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.

+1

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. –

+0

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