2008-08-28 7 views
37

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

उत्तर

42

मुझे लगता है कि मुझे यह मिल सकता है। सेवा में, स्वचालित रूप से बनाए गए ServiceProcessInstaller घटक में एक संपत्ति "खाता" होती है जिसे "लोकल सेवा", "लोकलसिस्टम", "नेटवर्क सेवा" या "उपयोगकर्ता" पर सेट किया जा सकता है। यह "उपयोगकर्ता" को डिफॉल्ट कर रहा था जिसने प्रॉम्प्ट प्रदर्शित किया होगा।

+1

मैं इस महान लघु लेख को साझा करना चाहता हूं जो स्थानीय सिस्टम, लोकल सर्विस और नेटवर्क सेवा के बीच अंतर बताता है: http://www.windowsitpro.com/article/services/understanding-the-local-service-and-network -service-खातों –

0

क्या आपसे सेवा के लिए सेवा चलाने के लिए या सेवा स्थापित करने के अधिकारों के लिए खाते से पूछा जा रहा है? दूसरे के लिए, व्यवस्थापक के रूप में स्थापित करना इसे होने से रोकना चाहिए। सबसे पहले, आपको अपने इंस्टॉलर को ServiceProcessInstaller जोड़ना होगा।

मेरा मानना ​​है कि किसी सेवा के लिए डिज़ाइन सतह में एक प्रोजेक्ट इंस्टॉलर बनाने का एक लिंक है। उस डिज़ाइनर पर, आप System.ServiceProcess.ServiceProcessInstaller प्रकार की प्रक्रिया इंस्टॉलर जोड़ सकते हैं। इस ऑब्जेक्ट के गुण आपको सेवा के लिए खाते को सेट करने की अनुमति देते हैं।

3

SC.exe util को ध्यान में रखें, जिसमें दृश्य स्टूडियो को स्थापित करने की आवश्यकता नहीं है। आप बस इस एक्सई को उस सर्वर पर कॉपी कर सकते हैं, जिसे आप सेवा बनाना चाहते हैं या इसे दूरस्थ रूप से चलाएं। किसी उपयोगकर्ता को निर्दिष्ट करने के लिए obj पैरामीटर का उपयोग करें।

जाहिर है इस उपकरण के लिए एक जीयूआई है, लेकिन मैंने इसका उपयोग नहीं किया है।

4

जैसा कि आपने देखा, करीम, "खाता" संपत्ति यहां समाधान है। इस संपत्ति के द्वारा निर्धारित सुरक्षा संदर्भों के बीच मतभेद में रुचि रखने वालों के लिए:

http://www.codeproject.com/KB/dotnet/WinSvcSelfInstaller.aspx

भी:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount.aspx

InstallUtil या अनुसूचित जाति का उपयोग कर इन सबसे ऊपर, मैं एक स्व संस्थापक बनाने का विचार पसंद हालांकि मुझे यह .Net 1.1 प्रलेखन में मिला:

ManagedInstallerClass टाइप .NET Framework आधारभूत संरचना का समर्थन करता है और का उद्देश्य सीधे आपके कोड से उपयोग नहीं किया जाता है।