2010-09-21 15 views
26

हम "स्वचालित" से हमारे Windows सेवा के स्टार्टअप प्रकार संशोधित करने की आवश्यकता में Windows सेवा स्टार्टअप प्रकार बदलने के लिए कैसे "स्वचालित प्रारंभ विलम्ब" करने के लिए। मैं यह कैसे करु?एक WiX संस्थापक

मेरे कोड इस तरह है:

<ServiceInstall 
    Id="WinServiceInstall" 
    Name="ServiceManager" 
    DisplayName="ServiceManager" 
    Type="ownProcess" 
    Start="auto" 
    ErrorControl="normal" 
    Vital ='yes' 
    Description ='Monitoring and running the jobs' 
    Account="[SERVICEACCOUNT]" 
    Password="[SERVICEPASSWORD]"> 
    <util:ServiceConfig 
     FirstFailureActionType="restart" 
     SecondFailureActionType="restart" 
     ThirdFailureActionType ="restart" 
     cRestartServiceDelayInSeconds ="10" /> 
</ServiceInstall> 

और कैसे मैं पुनः प्रारंभ सेवा समय निर्धारित करते हैं? विफल होने पर 2 मिनट के बाद मैं पुनरारंभ सेवा सेट करना चाहता हूं।

उत्तर

-2

मैं समझ नहीं सकता कैसे सेवा (क्योंकि यह गणना में एक विकल्प नहीं है) "स्वचालित विलंबित प्रारंभ" ServiceInstall तत्व के साथ उपयोग करने के लिए प्राप्त करने के लिए, तो मैं एक reg मूल्य के साथ यह स्थापित करने समाप्त हो गया ।

<RegistryValue Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\[ServiceName]" 
       Type="integer" Name="DelayedAutostart" Value="1"/> 

मैंने इसे सर्विसइनस्टॉल के समान घटक में रखा है, और सब ठीक काम करने लगता है। मुझे कल्पना है कि सेवा के समय के लिए आप एक ही काम कर सकते हैं।

+1

यह सर्वर पर काम नहीं करता 2008 –

+1

@Cooper, "DelayedAutostart" एक 64 बिट सर्वर 2008 SP2 मशीन पर मेरे लिए काम कर रहा है। मैं फिर से शुरू करने के समय पर टिप्पणी नहीं कर सकता। –

+1

यह सही उत्तर नहीं है। –

55

प्लेस ServiceInstall तत्व के भीतर एक ServiceConfig तत्व।

<ServiceConfig DelayedAutoStart="yes" OnInstall="yes" OnReinstall ="yes" /> 
+0

विक्स: सर्विसकॉन्फिग –

+1

मैंने इसका परीक्षण किया। ServiceConfig को नीचे दिखाए गए गुणों की आवश्यकता है। उनके बिना यह संकलित नहीं होगा।

+0

हाँ, मैं के बाद से मूल एक मामलों में एक WiX त्रुटि कोड स्निपेट ठीक कर दिया। –