2010-09-21 34 views
26

Chúng tôi cần sửa đổi loại Khởi động dịch vụ Windows của chúng tôi từ "Tự động" sang "Tự động trì hoãn bắt đầu". Làm thế nào để tôi làm điều này?Cách thay đổi loại khởi động dịch vụ Windows trong trình cài đặt WiX

Mã của tôi là như thế này:

<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> 

Và để tôi đặt thời gian dịch vụ Khởi động lại như thế nào? Tôi muốn thiết lập dịch vụ Khởi động lại sau 2 phút nếu không thành công.

Trả lời

-2

Tôi không thể biết cách sử dụng dịch vụ "Tự động trì hoãn bắt đầu" với phần tử ServiceInstall (vì đây không phải là tùy chọn trong điều tra), vì vậy tôi đã thiết lập nó với giá trị reg .

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

Tôi đặt mục này vào cùng thành phần với ServiceInstall và mọi thứ có vẻ hoạt động tốt. Tôi tưởng tượng bạn có thể làm điều tương tự cho thời gian khởi động lại dịch vụ.

+1

nó không hoạt động trên máy chủ 2008. –

+1

@Cooper, "DelayedAutostart" đang hoạt động với tôi trên máy 64 bit Server 2008 SP2. Tôi không thể bình luận về thời gian khởi động lại mặc dù. –

+1

Đây không phải là câu trả lời đúng. –

55

Đặt phần tử ServiceConfig trong phần tử ServiceInstall.

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

wix: ServiceConfig –

+1

Tôi đã thử nghiệm nó. ServiceConfig đã yêu cầu các thuộc tính như hình dưới đây. Không có chúng, nó sẽ không biên dịch.

+0

Có, tôi đã chỉnh sửa đoạn mã vì đoạn mã ban đầu có lỗi WiX. –

Các vấn đề liên quan