2009-06-18 14 views
17

क्या सी # EXE या Windows सेवा बनाना संभव है जो वेब सेवा अनुरोधों को संसाधित कर सकता है? जाहिर है, कुछ प्रकार के एम्बेडेड, शायद सीमित, वेब सर्वर को EXE/सेवा का हिस्सा होना होगा। आईईई/सेवा को आईआईएस स्थापित करने पर भरोसा नहीं करना पड़ेगा। पसंदीदा रूप से, एम्बेडेड वेब सेवा HTTPS/SSL प्रकार कनेक्शन को संभाल सकती है।क्या एक स्टैंडअलोन, सी # वेब सेवा को EXE या Windows सेवा के रूप में तैनात करना संभव है?

परिदृश्य यह है: ग्राहक अपनी कॉर्पोरेट मशीनों पर एक छोटा एजेंट (एक विंडोज़ सेवा) स्थापित करना चाहता है। एजेंट के पास दो प्राथमिक कार्य होंगे: 1) समय के साथ सिस्टम की निगरानी करें और डेटा के कुछ टुकड़े इकट्ठा करें और 2) डेटा एकत्रण या सिस्टम परिवर्तन उद्देश्यों के लिए वेब सेवा अनुरोधों का जवाब दें (एसओएपी-वी-आरईएसटी अभी भी परेशान है)। ग्राहक को वेब सेवा एपीआई के विचार पसंद हैं ताकि कॉरपोरेट मशीनों पर चल रहे विभिन्न एजेंटों में टैप करने के लिए किसी भी संख्या में किसी भी भाषा में (किसी भी भाषा में) लिखा जा सके। वे इंस्टॉलेशन को अपेक्षाकृत पीड़ित होना चाहते हैं (.NET, कुछ असेंबली, एक सेवा स्थापित करें, विंडोज फ़ायरवॉल को संशोधित करें, सेवा शुरू करें) IIS को स्थापित और कॉन्फ़िगर करने की आवश्यकता के बिना।

मुझे पता है कि मैं इसे डेल्फी के साथ कर सकता हूं। लेकिन यदि ग्राहक संभव हो तो सी # में ऐसा करना पसंद करेंगे।

कोई सुझाव?

उत्तर

13

हाँ, यह संभव है, आप WCF और Self Hosting पर एक नजर है कर सकते हैं।

+2

यह बहुत ही आशाजनक लग रहा है। विशेष रूप से स्वयं होस्टिंग अध्याय स्टैंडअलोन EXE/सेवा के मेरे प्रश्न का उत्तर देता है। धन्यवाद। –

6

हां, यह संभव है (और काफी आसान)।

यहां CodeProject article दिखा रहा है कि सी # में मूल HTTP सर्वर कैसे बनाया जाए। इसे आसानी से एक स्टैंडअलोन EXE या सेवा में रखा जा सकता है, और एक वेब सेवा के रूप में उपयोग किया जा सकता है।

+1

यह उदाहरण निश्चित रूप से एक वेब सर्वर को एम्बेड करने का तरीका दिखाता है, लेकिन किसी वेब सेवा विधि कॉल में आने वाले अनुरोध को चालू करने के तरीके के बारे में कुछ भी नहीं। मैं एक एसओएपी पैकेट पार्सर लिख सकता हूं जो आवश्यक ऑब्जेक्ट बनाता है, विधि को रेखांकित करता है और इसे विभिन्न गुणों के साथ कॉल करता है, लेकिन मुझे लगता है कि कुछ .NET में, यह सब किया जा सकता है। –

3

एक तकनीक जिसे आप देखना चाहते हैं वह डब्ल्यूसीएफ है। डब्ल्यूसीएफ में दर्द का थोड़ा सा दर्द हो सकता है लेकिन केथ एल्डर द्वारा डीएनआरटीवी पर एक शानदार स्क्रीनकास्ट है जो दिखाता है कि डब्ल्यूसीएफ के साथ एक बहुत ही सरल तरीके से कैसे शुरुआत करें।

http://www.dnrtv.com/default.aspx?showNum=135

+1

दरअसल, एंटोनियो, डब्ल्यूसीएफ वेब सेवाओं के मुकाबले कम दर्दनाक है। –

+0

डब्ल्यूसीएफ _is_ वेब सेवाएं। आप वेब सेवाओं को करने के पुराने तरीके के बारे में सोच रहे हैं। –

1

आप नेट फ्रेमवर्क में HttpListener पर एक नज़र डाल सकते हैं।

+2

यह मुझे एक साधारण वेब सर्वर देता है - लेकिन वेब सेवा अनुरोधों को संभालने के लिए कुछ नहीं। –

1

मैं अत्यधिक डब्ल्यूसीएफ की सिफारिश करता हूं। यह आपके द्वारा वर्णित उत्पाद में बहुत अच्छी तरह से फिट होगा। books की अच्छी संख्या उपलब्ध है।

1

निश्चित रूप से, आप यह कर सकते हैं। प्रोजेक्ट के आउटपुट प्रकार को कंसोल एप्लिकेशन में बदलना सुनिश्चित करें। फिर, अपने मुख्य कार्य में, एक स्ट्रिंग [] पैरामीटर जोड़ें। कमांड लाइन पर आपको प्राप्त होने वाले कुछ स्विच के बाहर, आप कंसोल एप्लिकेशन चलाने के लिए किसी अन्य कोड पर Windows सेवा या शाखा के रूप में चलाने के लिए ServiceBase.Run पर जा सकते हैं।

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

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