2012-06-20 14 views
5

मेरे पास अपने स्वयं के रजिस्टर हैंडलर के साथ एक कस्टम विंडोज सेवा है, मैं इसे सेवा प्रबंधक से स्टॉप कमांड प्राप्त करने पर रोकने से कैसे रोक सकता हूं? मैंने सेवा और एक जीयूआई के बीच एक पाइप संचार स्थापित किया है और मैं इसे केवल जीयूआई से रोकना चाहता हूं, जब मैं विंडोज़ सेवा भेजता हूं तो संदेश "रोकें" नहीं जब मैं इसे विंडोज सर्विस मैनेजर से रोकने की कोशिश करता हूं। मैं सी #सेवा सेवा को रोकने से विंडोज सेवा प्रबंधक को रोकें C#

+2

मशीन बंद होने पर क्या होता है? सेवा को रोकने के लिए आदेश सेवा प्रबंधक से नहीं आता है? – Paparazzi

+1

क्या इस तरह की हार विंडोज सेवा का उपयोग करने का उद्देश्य नहीं है? –

+3

खैर मुझे इस उद्देश्य की परवाह नहीं है, मैं बस इसे करना चाहता हूं। – AlexandruC

उत्तर

11

में काम कर रहा हूं क्या यह आपके प्रश्न का उत्तर देता है?

http://bytes.com/topic/c-sharp/answers/444965-prevent-service-stopping

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

+0

आपकी टिप्पणी के साथ सहमत हैं ऑनस्टॉप के भीतर स्टॉप कमांड को रोक नहीं सकते हैं। मैंने अपना जवाब हटा दिया। – Paparazzi

+0

सही। बस मैं जिस चीज की तलाश में था। – AlexandruC

0

एक विकल्प के रूप में आप बस सेवा सेटिंग्स को सुरक्षित कर सकते हैं (सेवा डीएसीएल को संशोधित करें) जैसे कि केवल एक विशेष उपयोगकर्ता खाता (और शायद सिस्टम) को सेवा को रोकने और स्थापना के दौरान इस विशेष स्थानीय उपयोगकर्ता खाते को स्थापित करने का अधिकार है।

आपका नियंत्रण एप्लिकेशन मानक सेवा नियंत्रण प्रबंधक कार्यों का उपयोग इस विशेष उपयोगकर्ता की सुरक्षा टोकन के साथ कर सकता है और सबकुछ असामान्य कुछ भी किए बिना अपेक्षित काम करेगा।