2009-05-14 7 views
6

से एक खिड़कियों सेवा को कॉल करने, वहाँ एक रास्ता asp.net से उस सेवा को कॉल करने के लिए है?कैसे asp.net

उत्तर

8

तक

आप क्या मतलब है "कि सेवा को कॉल करें", सेवा प्रबंधन? जैसा कि, प्रारंभ करें, रोकें, पुनरारंभ करें आदि? यदि ऐसा है, तो उत्तर हाँ है। www.csharp-examples.net पर एक अच्छा लेख है कि आप बताएंगे कि कैसे ServiceController वर्ग का उपयोग करने के होगी।

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

3

कुछ स्पष्टता में मदद मिलेगी - आप भी व्याख्या आपकी सेवा के लिए ASP.NET से दूरस्थ विधि कॉल के कुछ प्रकार के रूप में "है कि सेवा को कॉल" कर सकता है - जैसे अपनी विंडोज सेवा में कुछ राज्य स्टोर करने के लिए।

होस्ट Windows सेवा उदा सेवा समाप्ति बिंदु रिमोटिंग, डब्ल्यूसीएफ, या सादे ओएल 'टीसीपी सॉकेट सर्वर का उपयोग करना। जिनमें से सभी को एएसपी.नेट में होस्ट किए गए ग्राहकों द्वारा बुलाया जा सकता है।

वहां बहुत सारे रिमोटिंग और डब्ल्यूसीएफ उदाहरण हैं जो ऐसा करते हैं - होस्टिंग और उन तकनीकों में से एक के लिए खोजें।

कुछ MSDN लिंकेज को पढ़ने के लिए:

Remoting

WCF

तुम भी Windows Process Activation के बारे में पढ़ना चाहिए - आप एक अलग सेवा लेखन के बिना दूर प्राप्त करने में सक्षम हो सकता है।

1

एक अतिरिक्त (वास्तव में) सरल संदेश भेजने के लिए, ServiceController.ExecuteCommand(int command) का उपयोग किया जा सकता है। executecommand के उपयोग के साथ यह एक integer/enum संदेश के रूप में भेजने के लिए वास्तव में आसान है।

var myService = new ServiceController("SimpleService"); 
myService.ExecuteCommand(128); 
myService.ExecuteCommand((int)SimpleServiceCustomCommands.ScanFiles); 

और myService लगता है:

public class myService : ServiceBase 
{ 
    ... 
    protected override void OnCustomCommand(int command) 
    { 
    //executes logic