2014-07-16 10 views
8

कई विंडोज सेवाएं एक प्रक्रिया साझा कर सकती हैं। जहां main() कार्यान्वित रन विधि ब्लॉक केनेट सेवाओं के विंडोज़ सेवाओं की वास्तुकला

ServiceBase.Run(new MyService1(), new MyService2()); 

कॉल धागा: सी # में वे के रूप में शुरू कर देंगे। साथ ही सेवाओं की घटनाओं को संभाला जाता है। तो वे कहां निष्पादित किए जाते हैं?

क्या वे "मुख्य" प्रक्रिया में असीमित प्रक्रिया कॉल का उपयोग करते हैं जो केवल अवरुद्ध नहीं है लेकिन सतर्क प्रतीक्षा में है? यदि ऐसा है, तो कई सेवाओं के लिए एक प्रक्रिया साझा करने में प्रदर्शन में कमी आई है। हैंडलर अलग धागे में चलाते हैं? क्या उन्हें Run() कॉल वाली प्रक्रिया के बाहर निष्पादित किया गया है?

+2

आपने 7 प्रश्न पूछे। आपको इसे * एक * पर पर्स करना होगा। –

+2

@ हंसपैसेंट प्रश्न 2-5 केवल पहले स्पष्टीकरण हैं। मैंने 6, 7. – SerG

+2

हटा दिया http://msdn.microsoft.com/en-us/library/windows/desktop/ms685967%28v=vs.85%29.aspx –

उत्तर

0

विंडोज़ में, कई सेवाएं SERVICE_WIN32_SHARE_PROCESS सेवा प्रकार का उपयोग करके एक ही प्रक्रिया साझा कर सकती हैं। .NET को Windows पर एक ही प्रक्रिया में एकाधिक सेवाओं को पंजीकृत करने के लिए इस सेवा प्रकार का उपयोग करना होगा।

प्रत्येक पंजीकृत सेवा का नाम और मूल प्रविष्टि बिंदु पता SERVICE_TABLE_ENTRY संरचना द्वारा दर्शाया गया है। .NET ServiceBase.Run विधि को पारित प्रत्येक सेवा के लिए SERVICE_TABLE_ENTRY का निर्माण करेगा, और इन जानकारी के साथ StartServiceCtrlDispatcher फ़ंक्शन पर कॉल करें।

सेवा की स्थिति के बारे में अधिसूचनाएं प्राप्त करने के लिए, प्रविष्टि बिंदु (ServiceMainServiceBase कक्षा द्वारा कार्यान्वित के रूप में) नोटिफिकेशन प्राप्त करने के लिए RegisterServiceCtrlHandlerEx पर कॉल करना होगा। ये सूचनाएं एपीसी का उपयोग करके भेजी जाती हैं। एक साइड नोट के रूप में, NotifyServiceStatusChange एपीआई भी एपीसी का उपयोग करता है।

0

विंडोज़ सेवा आर्किटेक्चर के बाद आप शायद क्या कर रहे हैं और सेवा अनुप्रयोगों को कैसे एकीकृत किया जाता है।

वहां पहले से ही MSDN में उस विषय पर एक बहुत अच्छा लेख, which can be found here.

यह न केवल बताते हैं कि कैसे विंडोज सेवाओं के साथ सूचना का आदान प्रदान, कैसे सेवाओं डेटाबेस काम करता है (कम से कम आंशिक रूप से) है।

लेख यह भी बताता है कि ऑपरेटिंग सिस्टम सेवाएं कैसे काम करती हैं और आईआईएस (इंटरनेट सूचना सेवाओं) में होस्टिंग सेवाओं पर कुछ संकेत देती हैं।

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