2012-05-02 80 views
1

我有C#編寫的,我需要安裝和調試的自定義Windows服務。當我使用installutil與Windows服務安裝,然後立即卸載定製窗口服務

installutil "[path].exe" 

在命令行,然後嘗試與搜索服務,它不會出現在任何地方安裝的服務列表。縱觀安裝日誌文件,我看到:

Installing assembly 'myservice'. 
Affected parameters are: 
    logtoconsole =  
    assemblypath = mypath 
    logfile = mylogfile 
Installing service MyService 
Service MyService has been successfully installed. 
Creating EventLog source MyService in log Application... 
Committing assembly 'myservice'. 
Affected parameters are: 
    logtoconsole = 
    assemblypath = myservice 
    logfile = pathtoinstalllog 
Uninstalling assembly myservice 
Affected parameters are: 
    logtoconsole = 
    assemblypath = myservice 
    logfile = pathtoinstalllog 
Removing EventLog source myservice. 
Service myservice is being removed from the system... 
Service myservice was successfully removed from the system. 
Uninstalling assembly myservice'. 
Affected parameters are:  
    logtoconsole = 
    assemblypath = myservice 
    logfile = pathtoinstalllog 
Removing EventLog source myservice. 
Service myservice is being removed from the system... 
Service myservice was successfully removed from the system. 

(名稱路徑,爲MyService,pathtoinstalllog等到位公司具體情況)

無論如何,從日誌文件時,它看起來好像服務正在安裝,然後立即卸載......

如果需要更多的代碼或信息,讓我知道,在此先感謝。

+0

Should't您可以指定標誌'-i'把這件事告訴'install'? – Suhas

+0

你在日誌文件中得到任何錯誤?這是來自installlog文件的完整日誌。同時檢查我們的代碼不會導致卸載 –

+0

哦,我認爲這是默認值..無論哪種方式,它並沒有改變任何東西:\ –

回答

2

來概括根據我們討論...

  • 使用 'InstallUtil full-path' 爲您服務的主要輸出(斌/調試/ assembly.exe)。通常,如果有一個錯誤InstallUtil「執行回滾」(所以看爲錯誤) - 它看起來像它這樣做,但你的日誌不說 - 所以我猜你「的MyService」是錯誤的路徑(也挑右InstallUtil版本,.NET框架和32/64)...

  • 安全/帳戶問題 - run InstallUtil elevated('以管理員身份運行',命令提示符等) - (如果需要其他調試,請嘗試指定不同的用戶/類型爲您的服務帳戶,檢查您的安裝程序類的詳細信息,RunInstaller屬性等)。

希望這有助於

+0

最後一個問題 - 我使用SYSTEM用戶進行服務。這是好的,如果不是,我該如何改變它? 編輯:沒關係,我在安裝程序代碼中找到它。第一個問題仍然存在,雖然大聲笑 –

+0

是的,在安裝程序中 - '我不會使用'系統'帳戶(我猜你正在談論LocalSystem)。 '首選項總是與'最小特權'一起進行,通常是'ServiceAccount.LocalService',如果它完成了工作'。通過'System.ServiceProcess.ServiceAccount'的描述,它對他們每個人都說了一點。理想情況下,如果可以的話,爲了適當的安全設置(並且能夠進行微觀管理,稍後控制),設置一個單獨的用戶(對於服務或類別服務的「類別」)並且給它「足夠的」特權'。但這更多的是'安全':) :) – NSGaga

+0

http://stackoverflow.com/questions/510170/the-difference-between-the-local-system-account-and-the-network-service-acco - 或這個鏈接 – NSGaga