2010-12-15 21 views
15

इंस्टॉल करने पर उपयोगकर्ता या सिस्टम खाता चुनें, विंडोज सेवा स्थापित करते समय, क्या उपयोगकर्ता को एक विशिष्ट उपयोगकर्ता खाते और कंप्यूटर खाते जैसे स्थानीय सिस्टम के बीच चयन करने का कोई तरीका है? मैं सेवा इंस्टॉलर गुणों के माध्यम से निर्माण समय पर ऐसा करने के लिए कैसे करता हूं, लेकिन इंस्टॉल के दौरान नहीं।विंडोज सेवा

+2

आप किसके साथ स्थापित कर रहे हैं? एमएसआई के? कमांड लाइन? –

+0

मैं शायद एक कस्टम इंस्टॉलर का उपयोग करूँगा और installutil का आह्वान करेंगे। मैंने ऐसे मामलों को देखा है जहां यह किया जाता है, लेकिन मुझे यकीन नहीं है कि यह कैसे काम करता है। – AdamC

उत्तर

27

@Doobi, @Eric, मेरे अनुभव में (Win7Home 64-बिट, VS2010Express, डोमेन पर नहीं)

processInstaller.Account = ServiceAccount.LocalService; 
processInstaller.Username = null; 
processInstaller.Password = null; 

सेवा पासवर्ड के बिना स्थानीय सेवा के रूप में सेवा स्थापित करेगा।

किसी स्थानीय उपयोगकर्ता खाते के रूप में सेवा स्थापित करने के लिए (और क्रेडेंशियल प्रदान करने के लिए उपयोगकर्ता को सक्षम करने के पासवर्ड मांगना प्रदान) मैं का इस्तेमाल किया था: मैं पाने के लिए लेना पड़ा

this.serviceProcessInstaller.Account =System.ServiceProcess.ServiceAccount.User; 
this.serviceProcessInstaller.Password = null; 
this.serviceProcessInstaller.Username = null; 

महत्वपूर्ण कदम स्थापित सेवा dave के बजाय कंप्यूटर नाम को क्रेडेंशियल्स संवाद बॉक्स, यानी MYPC\dave में रखना है। मुझे आश्चर्य हुआ कि मुझे ऐसा करना होगा क्योंकि यह किसी डोमेन पर नहीं है। मैंने इस टिप्पणी को जोड़ा है क्योंकि मैंने इस उल्लेख के बारे में कोई अन्य पोस्ट नहीं देखा है जो उपयोगकर्ता नाम को पीसी नाम से उपसर्ग करना है।

+2

धन्यवाद कंप्यूटनाम \ उपयोगकर्ता नाम संकेत ने मेरे मुद्दे को – Martin

+0

उपयोगकर्ता नाम के सामने डोमेन नाम भी मेरे लिए समस्या तय की है। धन्यवाद! –

6

हां, यह प्रक्रिया इंस्टॉलर पर है। मुझे लगता है कि नए ढांचे में यह एक दृश्यमान संपत्ति है यदि आप डिज़ाइन सतह पर प्रक्रिया इंस्टॉलर का चयन करते हैं। पिछली बार मैंने किया (.net 2.0) आप * .designer.cs फ़ाइल को यह करने के लिए कुछ इसी तरह जोड़ने के लिए:

processInstaller.Account = ServiceAccount.LocalService; 
      processInstaller.Username = null; 
      processInstaller.Password = null; 
+0

तो यह कैसे "उपयोगकर्ता को एक विशिष्ट उपयोगकर्ता खाते और कंप्यूटर खाते जैसे स्थानीय सिस्टम" –

+0

के बीच चयन करने देता है क्योंकि यदि आप इसे "ServiceAccount.User" पर सेट करते हैं और प्रमाण-पत्र निर्दिष्ट नहीं करते हैं तो यह उपयोगकर्ता को संकेत देता है जब आप स्थापित करते हैं तो प्रमाण-पत्र। – Doobi

+1

+1 यह बहुत अच्छा है। –

2

पिछले उत्तरों को जोड़ना, "उपयोगकर्ता नाम" दर्ज करने के दौरान मशीन नाम को उपयोगकर्ता नाम में जोड़ना न भूलें। अन्यथा सेवा क्रेडेंशियल स्वीकार नहीं करेगी, हालांकि यदि आप सही उपयोगकर्ता नाम और पीडब्ल्यूडी देते हैं। यह क्रेडेंशियल्स दर्ज करने के लिए पॉप अप प्रॉम्प्ट पर जारी रहेगा। इसे समझने में मुझे एक दिन लगा। Badgerspot के लिए धन्यवाद!