2009-04-19 8 views
56

मैं WCF करने के लिए नए हूँ और मतभेद/लाभ/सीमाओं/निम्नलिखित बाइंडिंग में से प्रत्येक के आदि जानना चाहूंगा:net.pipe बनाम net.tcp बनाम http बाइंडिंग

net.pipe 
net.tcp 
http 

सहायक परिदृश्यों प्रत्येक बाध्यकारी और अन्य उदाहरणों का उपयोग कब किया जाएगा, इसकी सराहना की जाएगी।

उत्तर

64

विशिष्ट उपयोग उदाहरण प्रदान करने के लिए बहुत अच्छा नहीं है, यहां एमएसडीएन का एक लिंक है जो बाइंडिंग के लिए सभी सुविधाओं को सूचीबद्ध करता है।

http://msdn.microsoft.com/en-us/library/ms730879.aspx

यहाँ एक सभ्य प्रवाह चार्ट उन दोनों के बीच चुनने के रूप में अच्छी तरह से मदद कर सकते हैं है।

Flowchart

स्रोत: http://bloggingabout.net/blogs/dennis/archive/2006/12/01/WCF-Binding-decision-chart.aspx

यहाँ एक अच्छा समग्र लेख मैं पहले उपयोग किए गए है।

http://mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx (या here वेबैक मशीन में यदि लिंक अब आपके लिए काम नहीं करता है)।

+0

मिशेल लेरोक्स बस्टामेंटे की अपनी पुस्तक में उदाहरणों के साथ सभी अलग-अलग बाइंडिंग की अच्छी तुलना है: लर्निंग डब्ल्यूसीएफ –

+1

@ जोएडॉयले जबकि यह उत्तर प्रश्न का उत्तर देने का प्रयास करता है, तो क्या आप संदर्भित लिंक से किसी भी प्रासंगिक अंश को जोड़कर कृपया अपना जवाब सुधार सकते हैं का जवाब? यह भविष्य के आगंतुकों के लिए सहायक होगा क्योंकि उन्हें लिंक पर क्लिक करने की आवश्यकता नहीं होगी और सबसे महत्वपूर्ण रूप से मृत लिंक के खिलाफ आपके उत्तर की सुरक्षा में मदद मिलती है। – Kermit

+0

मुझे यह पसंद है, मुझे यह पसंद है, मुझे बस इस फ्लोचार्ट से प्यार है! वाकई शानदार! –

14

विंडोज संचार फाउंडेशन (डब्ल्यूसीएफ) एक्सएमएल संदेशों को संसाधित करने वाली सेवाओं के निर्माण के लिए एक ढांचा है। डब्ल्यूसीएफ आपको विभिन्न परिवहन प्रोटोकॉल (जैसे एचटीटीपी, टीसीपी, और एमएसएमक्यू) का उपयोग करके संदेशों को प्रेषित करने की अनुमति देता है और विभिन्न एक्सएमएल प्रस्तुतियों (जैसे पाठ, बाइनरी, या एमटीओएम, जिसे आमतौर पर डब्ल्यूसीएफ में संदेश एन्कोडिंग के रूप में जाना जाता है।

यदि आप एक मशीन पर कई डब्ल्यूसीएफ सेवाओं को होस्ट करना चाहते हैं और चाहते हैं कि वे अपने संचार के लिए साझा मेमोरी का उपयोग करें, तो नामित पाइप => net.pipe का उपयोग करें, और फिर विभिन्न मशीनों पर डब्ल्यूसीएफ सेवाओं के संचार के लिए टीसीपी का उपयोग करें।

nettcp बाध्यकारी का कॉन्फ़िगरेशन एक चैनल स्टैक बनाने पर केंद्रित है जो विंडोज वातावरण में बेहतर प्रदर्शन करेगा, जिससे आप अपने विभिन्न COM + और .NET रिमोटिंग निवेश को बदलने के लिए एक शानदार विकल्प दे सकते हैं।

BasicHttp बाइंडिंग उन परिदृश्यों के लिए डिज़ाइन की गई थी जहां इंटरऑपरेबिलिटी अत्यंत महत्वपूर्ण है। नतीजतन, BasicHttp बाइंडिंग संदेश एन्कोडिंग के लिए परिवहन और पाठ के लिए HTTP का उपयोग करता है।

+3

WCF XML संदेश आवश्यक नहीं है। उदाहरण के लिए, संदेशों को सादे पाठ या बाइनरी – jbatista

+0

में एन्कोड किया जा सकता है एमटीओएम डब्ल्यूसीएफ में संदेश एन्कॉन्डिंग नहीं है। यह SOAP संदेश के ऊपर एक अनुकूलन Base64'd होने से बाइनरी डेटा से रोकने के लिए है। यह BasicHttp बाइंडिंग है जो SOAP (XML) का उपयोग कर रहा है। – Oooogi

50

net.pipe, तेजी से और सुरक्षित है क्योंकि अपने वेब सेवा नेटवर्क से सुलभ नहीं है (आम तौर पर, आप net.pipe आसानी से एक खिड़कियों सेवा के साथ बातचीत करने के लिए उपयोग किया जाएगा)।

http, आप इंटरऑपरेबिलिटी कारण के लिए इसका उपयोग करेंगे, यदि आपकी वेब सेवा HTTP से अधिक नहीं है, तो Silverlight या Flash इसका उपयोग नहीं कर सकता है (क्योंकि फ़ायरवॉल के रूप में ब्राउज़र फ़िल्टर गैर-http पैकेट्स फ़िल्टर करता है)।

net.tcp, थोड़ा तेज़ है क्योंकि आपका साबुन संदेश HTTP अनुरोध के अंदर लपेटा नहीं गया है, लेकिन आप अपने webservice को आरआईए तकनीक के साथ नहीं बुला सकते हैं, और कुछ फ़ायरवॉल आपके संदेश को छोड़ देंगे।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^