2010-02-11 20 views
7

के बिना कई ग्राहकों के साथ डब्ल्यूसीएफ संचार हम सहकर्मी सॉफ्टवेयर के साथ एक सहकर्मी पर काम कर रहे हैं जो कई किराने की दुकानों को "मुख्यालय" कहने के साथ अपनी सूची को सिंक करने की अनुमति देगा। ऐसा करने के लिए, हम डब्ल्यूसीएफ + डब्ल्यूपीएफ सोच रहे हैं, और आईआईएस और वेब सेवाएं नहीं हैं। डब्ल्यूसीएफ के साथ मेरा अनुभव मूल रूप से शून्य है, इसलिए मेरा सवाल यह है कि क्या डब्ल्यूसीएफ का उपयोग कर एक टीसीपी कम समाधान काम करेगा। स्थानांतरित किया जा रहा डेटा काफी सीमित है, एक संपीड़ित सादा पाठ फ़ाइल के लिए लगभग 2 एमबी (इसलिए हम बाइनरी डेटा भेज रहे हैं!), और यह केवल प्रति दिन एक बार किया जाता है। तो बैंडविड्थ/लोड यहां कोई मुद्दा नहीं होना चाहिए। इस बिंदु पर विचार मुख्यालय में चल रहे डब्ल्यूसीएफ "सर्वर" होना है। स्टोर स्वयं को उस सर्वर पर ज्ञात करते हैं और फिर फ़ाइलों को आगे और आगे भेजते हैं (चैट एप्लिकेशन के समान)। मुझे क्या यकीन नहीं है: क्या प्रत्येक स्टोर में डब्ल्यूसीएफ "सर्वर" (या एंडपॉइंट) होना चाहिए? सर्वर (= मुख्यालय) क्लाइंट (= स्टोर) में से किसी एक को फ़ाइल कैसे भेजेगा? प्रत्येक स्टोर किसी अन्य स्टोर, और मुख्यालय में एक फाइल भेज सकती है, और प्रत्येक स्टोर किसी अन्य स्टोर/मुख्यालय से फ़ाइल को "अनुरोध" भी कर सकती है।आईआईएस

दो सीमाएं: शामिल मशीनों/कंप्यूटरों में से कोई भी बजट कारणों से विंडोज सर्वर चला सकता है, और जैसा कि आईआईएस पहले नहीं है।

उत्तर

2

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

यदि सभी स्थानान्तरण प्रति दिन एक बार किए जाते हैं, तो प्रत्येक क्लाइंट के साथ फाइलों के अनुरोध अनुरोध किए जाएंगे कि उन्हें कौन सी फाइलें चाहिए, इसके बाद प्रत्येक क्लाइंट सर्वर या किसी अन्य क्लाइंट द्वारा आवश्यक फ़ाइलों को अपलोड कर रहा है।अंतिम चरण प्रत्येक ग्राहक को आवश्यक फाइलों को वितरित करने वाला सर्वर होगा। जाहिर है, यह इसका एक सरल दृश्य है, वास्तविक प्रक्रिया के लिए कुछ और सोच की आवश्यकता हो सकती है।

+0

हां, यही वह है जो मैं इस बिंदु पर भी सोच रहा हूं। सभी ट्रैफिक को संभालने के लिए एक सर्वर है ... हालांकि, सर्वर उनसे अनुरोध करने के बिना ग्राहकों को फाइल भेजने में सक्षम होना चाहिए। तो डब्ल्यूसीएफ सर्वर किसी भी तरह से पता होना चाहिए कि ग्राहक ऑनलाइन/कनेक्ट है या नहीं। क्या यह संभव है? धन्यवाद! – John

+0

यदि सर्वर क्लाइंट से कनेक्ट नहीं हो सकता है, तो आप उस विशिष्ट अपवाद को संभाल सकते हैं जिसे फेंक दिया गया है और बाद में पुनः प्रयास किया जा सकता है। आपके सर्वर पर चल रही प्रक्रिया के लिए आपको कुछ प्रकार का टाइमर होना होगा। – Tanner

2

आपको आईआईएस में डब्ल्यूसीएफ होस्ट करने की आवश्यकता नहीं है, लेकिन क्या कोई विशेष कारण है कि आप ऐसा नहीं करना चाहते हैं?

आप एक ServiceHost में WCF होस्ट कर सकते हैं, लेकिन फिर आप, निर्माण को बनाए रखने और सर्वर/सेवा सुविधाओं, इस तरह के आवेदन प्रक्रिया रीसाइक्लिंग, सक्रियण आधारित होस्टिंग, आदि के रूप में है कि आईआईएस मुक्त करने के लिए प्रदान करता है की एक बहुत कुछ को तैनात करने की जरूरत है

किसी भी मामले में, यह लगभग लगता है जैसे आपको पीयर नेटवर्किंग के लिए सहकर्मी की आवश्यकता है। आप NetPeerTcpBinding का उपयोग कर डब्ल्यूसीएफ के साथ ऐसा कर सकते हैं।

+0

आपके उत्तर के लिए धन्यवाद। तो इसका मतलब यह है कि प्रत्येक क्लाइंट को "सर्वर" (एंडपॉइंट) की भी आवश्यकता होती है, उदा। विंडोज सेवा में एक डब्ल्यूसीएफ होस्ट किया गया? मैं उम्मीद कर रहा था कि केवल एक मशीन डब्ल्यूसीएफ सेवा की मेजबानी करेगी, और अन्य सभी ग्राहक इसके माध्यम से किसी भी अन्य ग्राहक के साथ संवाद कर सकते हैं। हां, आईआईएस काम में आ जाएगा। लंगड़ा बहाना: ग्राहक बस इसे पसंद नहीं करता है। – John

+0

आपके पास एक सर्वर हो सकता है और जिसे डुप्लेक्स बाध्यकारी कहा जाता है, जिसका अर्थ है कि क्लाइंट 'सत्र' की अवधि के लिए सेवा के साथ एक एंडपॉइंट पंजीकृत करता है। हालांकि, इस तरह के एक हब-एंड-स्पोक टोपोलॉजी में, ग्राहक केवल केंद्रीय सर्वर से बात कर सकते हैं, न कि एक-दूसरे के साथ। –

+0

क्या NetPeerTCPBinding क्लाइंट को एक विशिष्ट अन्य क्लाइंट को कुछ भेजने की अनुमति देता है, या इस पर कोई नियंत्रण नहीं है कि संदेश कौन प्राप्त करता है? जैसा कि मैं समझता हूं कि यह एक प्रसारण है, इसलिए सभी क्लाइंट संदेश प्राप्त करते हैं। आपके समय के लिए फिर से धन्यवाद। – John

0

यदि आपके पास अपने आवेदन को फिर से डिजाइन करने का अवसर है, तो मेरा सुझाव है कि आप ऐसा करें। आप डब्ल्यूसीएफ में चारों ओर तार फेंक सकते हैं, लेकिन यदि आप डेटा अनुबंध बना सकते हैं तो आप अपने सभी संचार को दृढ़ता से टाइप कर सकते हैं।

यदि आपके पास विंडोज सर्वर 2008 तक पहुंच है तो नया आईआईएस आपके डब्ल्यूसीएफ को होस्ट कर सकता है भले ही यह टीसीपी का उपयोग नहीं कर रहा हो। अन्यथा आपको केवल एक ऐसा एप्लिकेशन लिखना होगा जो एक सेवा होस्ट खोलता है, जिसे आप आमतौर पर विंडोज़ सेवा में लपेटते हैं। लेकिन जैसा कि @ एमआरके सेमैन ने बताया, आपको आईआईएस में अपनी सेवा चलाकर बहुत सारे मुफ्त मिलते हैं।

पीरटीसीपी बाइंडिंग के साथ कोई अनुभव नहीं है लेकिन मैं आपको बता सकता हूं कि NetTcp बाइंडिंग अच्छा और तेज़ है और यह एन्क्रिप्शन और प्रमाणीकरण जैसे सभी प्रकार की उपहारों के साथ आता है यदि आप इसे चाहते हैं।

+0

धन्यवाद। मैं आईआईएस के बारे में सहमत हूं। वे Win2008 को बर्दाश्त नहीं कर सकते/नहीं कर सकते हैं, हालांकि, वे विंडोज 7 + आईआईएस कर सकते हैं। टीसीपी का उपयोग करते समय आईआईएस ऑफर करता है कि एक विंडोज सेवा नहीं करता है? जैसा कि मैंने कहा, लोड बहुत कम है और कोई मुद्दा नहीं है। और एक गारंटी है कि एक ही समय में केवल एक ग्राहक "बात कर रहा" है, यानी एक फाइल भेजना। एक बार फिर धन्यवाद! – John

+0

आप मूल रूप से डब्ल्यूसीएफ में अपनी सेवा बनाने, होस्टिंग आदि की निगरानी के लिए ज़िम्मेदार हैं, साथ ही साथ यह सुनिश्चित करने के लिए कि यह सही कॉन्फ़िगरेशन है और आपको कोई टूल समर्थन नहीं मिलता है। आईआईएस इसमें एक सेवा के साथ सिर्फ एक डीएलएल होस्ट करेगा, सेवा को कॉन्फ़िगर करने में मदद करने के लिए एक उपकरण है, यदि ईवेंट ऑनलाइन है और यदि यह क्रैश हो जाता है तो स्वचालित रूप से इसे पुनरारंभ करता है। आपको इसे स्वयं करना है यदि आप नहीं करते हैं इसका इस्तेमाल करें। – Spence

3

यदि आप केवल फाइलें भेज रहे हैं, तो मैं सवाल कर सकता हूं कि डब्ल्यूसीएफ भी कोई समझ नहीं लेता है या नहीं। क्या आपने बस फ़ाइल ट्रांसफर प्रोटोकॉल का उपयोग किया है, जैसे कि एसपीपी या एसएफटीपी?

प्रत्येक मशीन को कनेक्शन स्वीकार करना होगा और फ़ाइल ड्रॉप स्थान सेटअप होना होगा, और उसके बाद yuor एप्लिकेशन को नई फ़ाइलों के लिए उस स्थान की निगरानी करनी होगी। मैं सामान्य रूप से डब्ल्यूसीएफ से प्यार करता हूं, लेकिन एक फाइल ट्रांसफर प्रोटोकॉल के पास पैर लेना होगा यदि आप बस इतना करना चाहते हैं।

+0

मैं सहमत हूं। मेरे दृष्टिकोण में डब्ल्यूसीएफ फाइल एक्सचेंजिंग के बजाय संदेश एक्सचेंजिंग पर अधिक केंद्रित है। –