2012-10-18 17 views
12

डब्ल्यूसीएफ के लिए एक नौसिखिया है। मेरे पास एक परिदृश्य है जहां मुझे 24x7 मेलबॉक्स से मेल लेने और कुछ रिपोर्ट बनाने के लिए एक एप्लिकेशन बनाने की आवश्यकता है। मैंने इसे Winform का उपयोग करके किया और यह काम किया। लेकिन मैं एक समस्या है कि जिस सर्वर पर एप्लिकेशन होस्ट किया गया था, उसमें एक ऑटो लॉग ऑफ पॉलिसी है जो मेरे आवेदन को बंद कर देती है जब सर्वर एक निश्चित अवधि के लिए निष्क्रिय होता है। मैंने सोचा कि मैं इसे विंडो सेवा के रूप में कार्यान्वित कर सकता हूं। क्या डब्ल्यूसीएफ सेवा इसके लिए अनुशंसित है परिदृश्य, इसका उपयोग करने का कोई फायदा। मैंने डब्ल्यूसीएफ सेवा के बारे में सोचा क्योंकि यह मेरे लिए वक्र सीख रहा होगा। कृपया सलाह दें।डब्ल्यूसीएफ सेवा बनाम विंडो सेवा

अद्यतन: है कि एक विशेष मेलबॉक्स एक timer.It पिंग्स के आधार पर काम करता है हर 5 मिनट में नई mail.If के लिए देखने के लिए एक नया मेल पाया जाता है यह डाउनलोड करता है उसके आवेदन एक एक्सेल पीडीएफ रिपोर्ट और यह मेल करने के लिए वापस बनाता है कुछ ईमेल आईडी।

डीएलएलएस का उपयोग किया गया: ओपनपीओपी और आईटेक्सटर्प।

+0

आप हमें क्या आपके आवेदन के लिए करना है के बारे में अधिक जानकारी देने के लिए की जरूरत है, के अलावा अन्य "एक मेलबॉक्स से मेल ऊपर उठाता है और कुछ रिपोर्ट बनाने के।" – Bernard

+6

यदि आपके पास कोई ग्राहक है जो आपकी सेवा का उपभोग कर रहा है – swiftgp

उत्तर

19

एक विंडोज सेवा है जो आपको चाहिए।

WCF एक संचार पुस्तकालय है, और जब तक आप एक ग्राहक के माध्यम से अपने आवेदन के साथ संवाद करने की योजना है, तो आप इसे ज़रूरत नहीं है।

आपकी समस्या सक्रियण से संबंधित है, और पृष्ठभूमि में आपके कोड को सक्रिय रखने के लिए विंडोज सेवाएं क्या करती हैं।

यह मुश्किल नहीं है, इससे आपको शुरुआत करने में मदद मिलेगी।

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

+3

अच्छी टिप्पणी IanBru। मैं सिर्फ वही प्रतिक्रिया टाइप कर रहा था (+1)। यहां विषय पर एमएस से अतिरिक्त जानकारी का एक लिंक दिया गया है: http://msdn.microsoft.com/en-us/library/d56de412%28v=vs.100%29.aspx – Randy

+0

धन्यवाद ... इससे मदद मिली .. + 1 – Karthik

0

आपके आवेदन आप क्या चाहते हैं करता है और ठीक काम करता है जब तक कि सर्वर सक्रिय है, तो आप सर्वर एक निष्क्रिय स्थिति में नहीं जाने के लिए की स्थापना करके समस्या को हल करने पर विचार करना चाहिए।

दूसरे शब्दों में, के बाद से एक सर्वर अपने आप में एक अतिरिक्त में कभी नहीं जाना चाहिए (निष्क्रिय) मोड, मेरा अनुमान है कि नीति है कि आप की बात केवल निष्क्रिय मानव उपयोगकर्ताओं के लिए लागू किया गया है है - शायद और नीति (shouldn ' टी) सिस्टम स्तर उपयोगकर्ताओं को प्रभावित करते हैं।

तो, यदि आप अपने उपयोगकर्ता को सिस्टम उपयोगकर्ता (या नेटवर्क उपयोगकर्ता) के रूप में चलाने के लिए चला रहे थे, तो समस्या दूर होनी चाहिए।

अपने स्पष्टीकरण के आधार पर, WCF दो कारणों से आपकी समस्या का सही समाधान नहीं है:

  1. WCF जब आप किसी अन्य अनुप्रयोग (ग्राहक) है के लिए उपयोगी है कि WCF सेवा की खपत) - यह नहीं करता है ' टी ध्वनि की तरह आप अपने अनुप्रयोग में एक क्लाइंट/सर्वर सेवा
  2. आप अपने वर्तमान आवेदन के रूप में एक ही उपयोगकर्ता के रूप में WCF सेवा चलाने के लिए कर रहे थे के तहत चल रहा है की जरूरत होती है, आपकी समस्या अभी भी मौजूद हैं (यानी WCF सेवा करेंगे अंततः नीति के कारण निष्क्रिय रहें)।
+0

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

+0

आपको सिस्टम उपयोगकर्ता (या नेटवर्क) के रूप में सेवा चलाने के लिए क्लाइंट को बताना होगा। यह देखने के लिए कि मैं क्या समझा रहा हूं, अपनी सेवाओं पर जाएं और फिर किसी भी सेवा की प्रॉपर्टी पर जाएं। फिर, "लॉग ऑन" टैब पर जाएं। आप देखेंगे कि आप उस खाते को बदल सकते हैं जिस पर सेवा चल रही है। – Jed

+0

सेवा? मैंने एक सेवा नहीं बनाई है। मैंने इसे विंडोज़ एप्लिकेशन – Karthik

2

WCF आप एक वेब सेवा चला रहे हैं ही उपयोगी है। बस एक सामान्य विंडोज सेवा को आपकी जरूरतों को पूरा करना चाहिए। जब तक मशीन चालू हो तब तक सेवा चलाना जारी रखना चाहिए।

+0

क्या उपयोगकर्ता सेवा बंद होने पर भी विंडो सेवा चलती है? मुझे लगता है कि यह होगा। आपके विचार? आपकी मदद के लिए धन्यवाद – Karthik

+0

@ कार्टी: हाँ यह होगा। आपकी सहायता के लिए – Bernard

+0

धन्यवाद +1। – Karthik

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