2012-05-03 4 views
15

मैंने एक विंडो सेवा बनाई और इसे स्थापित करने के लिए मैंने अपनी तैनाती परियोजना बनाई और इसे इंस्टॉल किया। स्थापित करने के बाद मैंने इसे देखा। यह सफलतापूर्वक शुरू हुआ।विंडो सेवा सिस्टम स्थापित करते समय त्रुटि। सुरक्षा। सुरक्षा सुनिश्चित करें

अगले दिन मैंने कुछ संशोधन किया, और पुनर्निर्माण और पुनर्स्थापित किया लेकिन अब यह इंस्टॉल नहीं हो रहा है।

तब मैंने इंस्टॉलर के साथ अपनी समस्या सोचा, सेवा के लिए एक कस्टम इंस्टॉलर बनाने देता है ताकि जब भी मैं अपना कोड अपडेट कर सकूं।

मैंने इसे इस तरह की तरह बनाया है अगर किसी को भविष्य के लिए इसकी आवश्यकता हो।

public class MyInstaller : Installer 
    { 
     ServiceProcessInstaller spi; 
     ServiceInstaller si; 
     public MyInstaller() 
     {    
      spi = new ServiceProcessInstaller(); 
      spi.Account = ServiceAccount.LocalSystem; 

      si = new ServiceInstaller(); 
      si.StartType = ServiceStartMode.Manual; 
      si.ServiceName = "MyService"; 
      si.DisplayName = "My Service"; 
      si.Description = "service installed from command line"; 

      this.Installers.Add(spi); 
      this.Installers.Add(si); 

     } 
} 

मैंने इसे पैरामीटर तर्कों की जांच करके मुख्य विधि से बुलाया।

      case "-i": 
          case "-install": 
           ti = new TransactedInstaller(); 
           mi = new MyInstaller(); 
           ti.Installers.Add(mi); 
           string logPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\install.log"; 
           ctx = new InstallContext(logPath, cmdline); 
           ti.Context = ctx; //.Context (ctx); 
           ti.Install(new Hashtable()); 
           break; 

अब जब मैं स्थापित करने की कोशिश कर रहा हूं। मुझे त्रुटि सिस्टम प्राप्त हुआ। सुरक्षा। सुरक्षा विफलता: स्रोत नहीं मिला था, लेकिन कुछ या सभी ईवेंट लॉग खोज नहीं पाए जा सका। पहुंच योग्य लॉग: सुरक्षा।

मैं इसे Google करता हूं, और पता चला है कि सेवा लॉग ऑन इंस्टॉल और लिखते समय एप्लिकेशन लॉग तक पहुंचने का प्रयास करेगी।

मैं कोई ईवेंट लॉग नहीं लिख रहा हूं। लॉगिंग के लिए मेरे पास लॉगऑनेट है। लेकिन अभी भी इसका डिफ़ॉल्ट व्यवहार है।

अब इस मुद्दे को कैसे दूर करें? यह स्थापित नहीं हो रहा है, यहां तक ​​कि मेरे पास सभी अनुमतियां हैं।

धन्यवाद

उत्तर

56

मैं ने पाया है कि कई बार आप "व्यवस्थापक के रूप में चलाएँ" पड़ सकता है। यदि आप कमांड प्रॉम्प्ट से संस्थापित कर रहे हैं तो आपको "व्यवस्थापक के रूप में चलाएं" के साथ शुरू करने की आवश्यकता हो सकती है।

+0

मैंने cntrl + shift + रन में प्रवेश किया है।फिर फिर मैंने मैन्युअल रूप से दायाँ क्लिक किया और व्यवस्थापक के रूप में चलाया और यह आदमी काम किया। धन्यवाद मैं क्या मूर्खतापूर्ण गलतियों कर रहा हूँ। लेकिन मैं जानना चाहता हूं कि विंडो सेवा के प्रारंभ/बंद प्रदर्शन को कैसे सुधारें। – sunder

+0

@ सैंडर: स्टार्ट/स्टॉप प्रदर्शन में आपकी सेवा क्या हो रही है इसके साथ * बहुत * करने के लिए होगा। 'स्टार्ट' ठीक होना चाहिए क्योंकि आम तौर पर आप काम करते हैं जो एक नया धागा स्पिन करते हैं। रोकने के लिए आपको धागे को रोकने के लिए कुछ त्वरित तरीके की आवश्यकता होगी। तो प्रदर्शन में सुधार करने के लिए कोई सामान्य तरीका नहीं है। –

+0

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

1

मेरे पास संदेश के लिए एक अलग मूल कारण हो सकता है, लेकिन मैंने स्थानीय सेवा के बजाय स्थानीय सिस्टम (जो मैं वैसे भी चाहता हूं) के रूप में चलाने के लिए अपनी सेवा को बदलकर इसे ठीक कर दिया।

0

मैं के तहत इस बात की पुष्टि कर सकते हैं कि "विंडोज 7 64 बिट" और "Windows 10" आपको:

1) व्यवस्थापक के रूप में दृश्य स्टूडियो कमांड प्रॉम्प्ट चलाने (राइट क्लिक करें .. अन्य .. व्यवस्थापक के रूप में tun)

enter image description here

2) "obj" फ़ोल्डर पर जाएं जहां आपके पास exe है। (सीडी [सभी पथ को \ obj]) 3) [MyService.exe] InstallUtil

अगर "व्यवस्थापक" के रूप में नहीं चला लांच, तो यह और भी पुराने Win7 पर विफल रहता है। :(

ध्यान दें: MSDN यह व्याख्या नहीं करता:

(कम से: https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer)

"Windows सेवा स्थापित करने के लिए, आप कंप्यूटर आप इसे स्थापित कर रहे हैं, जिस पर पर प्रशासनिक क्रेडेंशियल्स होना आवश्यक है।"

:)

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