2009-10-04 15 views
7

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

शायद मैं इसे अधिकतर हाथ से रोल कर सकता हूं लेकिन मैं सोच रहा था कि प्रक्रिया को कम करने के लिए पहले से कुछ किया गया था या नहीं।

उत्तर

0

के बाद से इस सवाल का मूल रूप से तैनात किया गया था, इस समस्या के लिए काफी बेहतर समाधान जारी किया गया है।

यदि आप नेट कोर को लक्षित कर रहे हैं, तो WebHostBuilder का उपयोग कर स्वयं-होस्ट एएसपी.Net कोर के लिए यह छोटा है।

एक अन्य समाधान Nancy है, जो self-host के लिए भी आसान है।

1

सेवा के भीतर एक एंडपॉइंट होस्ट करने के लिए आप हमेशा WCF का उपयोग कर सकते हैं और इसे इस तरह से बेनकाब कर सकते हैं।

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

संपादित करें -

जोड़ी विशेष रूप से, मैं एक HTTP समाप्ति बिंदु के रूप में इस को उजागर और जिस तरह से आप एक वेब सेवा होगा ब्राउज़र के साथ सीधे इंटरफ़ेस की सोच रहा था।

हालांकि, ऐसा कोई कारण नहीं है कि सेवा के साथ संवाद करने के लिए एक पारंपरिक Asp.Net एप्लिकेशन स्थापित न हो, जब तक सेवा संचार समापन बिंदु होस्ट करे।

+0

+1 मुझे लगता है कि यह सबसे स्वच्छ दृष्टिकोण है, खासकर एक इन-प्रोसेस वेब सर्वर की मेजबानी के ऊपर। मैं इस तरह डब्ल्यूसीएफ का उपयोग करता हूं। यह आपको चिंताओं को अलग करके समाधान को स्पष्ट रूप से आर्किटेक्ट करने की अनुमति देता है। डब्ल्यूसीएफ सेवा एक एपीआई का खुलासा करती है लेकिन यूआई को स्वतंत्र रखती है। शायद हम आज एक वेब पेज के रूप में उजागर करते हैं, लेकिन कल हम डेस्कटॉप टूल भी पेश करते हैं। – codenheim

1

आप एक वेब सेवा इंटरफ़ेस के बजाय यूआई पर देख रहे हैं वहाँ चीजों की एक जोड़ी तुम कर सकते हो रहे हैं:

1) यह एक से अधिक आप की जरूरत हो सकता है, लेकिन आप का उपयोग कर अपने सेवा में ASP.NET की मेजबानी कर सकता है मूल कैसिनी कोड बेस: http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx

2) आप भी सिर्फ एक बंदरगाह खोलने के लिए, और आप कितना उम्मीद सेवा को एक्सेस किए जाने के आधार पर आपकी सेवा में अलग थ्रेड (रों) पर एक साधारण HTML पृष्ठ डाल सकता है।

मैंने इन दोनों को कुछ बार किया है, और जब तक आपको सुरक्षा की परवाह नहीं है तब तक कोई भी सरल सरल है - उदा। मशीन केवल एक विश्वसनीय इंट्रानेट से सुलभ है। यदि ऐसा नहीं है तो आप मशीन पर आईआईएस होस्ट करने और एक सुरक्षित वेब ऐप लिखने से बेहतर हैं।

2

मैं अपनी बनाई गई विंडोज सेवा के साथ एक ही चीज़ करना चाहता हूं। मुझे अंत में एक लेख मिल गया है जो मदद करेगा। मैंने अभी तक यह कोशिश नहीं की है, लेकिन मुझे लगता है कि नमूना स्रोत के साथ-साथ हमें दोनों की जरूरत है।

लेख का फोकस आपके कोड के भीतर से एक वेब सेवा (एएसएमएक्स) होस्ट करने के तरीके पर है, लेकिन मुझे लगता है कि यह आसानी से एएसपीएक्स पेज होस्ट कर सकता है।

http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

-Derek

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने पहले से ही System.Web.Hosting को देखा है (वास्तव में, मैंने कैसिनी को देखा), और इसे मेरी ज़रूरतों के लिए थोड़ा जटिल पाया। मुझे एएसपीएक्स पृष्ठों को होस्ट करने की ज़रूरत नहीं है, मैं बस कोड के साथ आने वाले अनुरोधों का जवाब देने में सक्षम होना चाहता हूं। मैंने वास्तव में एक प्रोजेक्ट पर काम करना शुरू कर दिया है जो कि सिस्टम.Net.HttpListener का उपयोग करके करता है। जब मैं पहला संस्करण करता हूं तो मैं इसे ओपन सोर्स के रूप में उपलब्ध कराने की योजना बना रहा हूं। जब मैं करता हूं तो मैं इस प्रश्न का उत्तर जोड़ूंगा। –

3

यहाँ एक और विकल्प है यदि आप एक एम्बेडेड सर्वर चाहते है, लेकिन नहीं एक सेवा या किसी भी बाहरी HTML/ASPX फ़ाइलें:

WebConfig - अपने वायरलेस रूटर यह है, अब तुम भी http://www.codeproject.com/KB/game/WebConfig.aspx

1

संपादित कर सकते हैं: प्ली इस का उपयोग न करें। यह अवधारणा का एक सरल सबूत था और मैं इसके साथ कहीं भी नहीं गया।कृपया better solutions के लिए मेरा अन्य उत्तर देखें।


ठीक है, कभी भी बेहतर नहीं। उस पर काम करने के लिए ज्यादा समय नहीं था।

http://github.com/leddt/SimpleHttpServer

यह बहुत बुनियादी सामान है, और उत्पादन उपयोग के लिए नहीं। यह एक छोटी परियोजना है जिसके साथ मैं प्रयोग कर रहा हूं। हालांकि मैं टिप्पणियां, सुझाव इत्यादि लेता हूं ...

0

लेख का ध्यान आपके कोड के भीतर से एक वेब सेवा (एएसएमएक्स) होस्ट करने के तरीके पर है, लेकिन मुझे लगता है कि यह आसानी से एएसपीएक्स पेज होस्ट कर सकता है।

http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

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