2012-05-23 56 views
2

我剛構建了一個非常簡單的Windows服務來測試某些內容並將其構建以獲取.exe。根據MSDN中的this article,我還使用Visual Studio命令提示符2010(以管理員身份運行)installutil TestService.exe安裝了該服務。Windows服務未顯示在已安裝的服務中(因此無法啓動)

當使用installutil命令時,一切運行正常,我收到一條消息說服務已安裝。此外,當我檢查服務節點(在Visual Studio中的服務器資源管理器中)時啓動服務,我沒有看到任何名爲TestService.exe的服務。

此外,開始菜單 - >我的電腦(右鍵單擊) - >管理 - >服務和應用程序 - >服務不顯示TestService.exe,我可以通過它啓動服務。

任何建議如何啓動服務?

OnStart功能代碼:

Process[] testProcess = Process.GetProcessesByName("notepad.exe"); 
if (testProcess.Length == 0) 
    File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "nothing"); 

else 
    File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "run"); 
+0

你刷新服務列表?如果它仍然不存在,安裝可能_failed_。請參閱'install.log'文件以確定。 – Oded

+0

@Oded:是的,我刷新了nd rested的Visual Studio但服務沒有出現。 Install.log顯示服務insatlled成功http://pastebin.com/8QJhi97H – user1240679

+2

它不會顯示'TestService。除非這是您在項目中的服務組件上設置的顯示名稱 - 它默認爲Service1。 Service1是否在列表中? –

回答

9

我有問題installutil前和使用sc命令工作而installutil沒有找到。

嘗試使用此命令安裝服務:

sc create servicename binPath= serviceexe.exe 
+1

sc創建的問題是它不理解.NET安裝程序類,所以它不會運行它們。這可能導致例如事件源未被創建。 –

+0

@Bali C:這種工作和服務出現在Server Explorer中的服務中。但現在,我無法啓動這個功能(因爲這裏沒有啓動選項)屏幕截圖:http://i.imgur.com/oRaXs.png – user1240679

+0

@ user1240679您可以在服務控制檯中啓動該服務嗎? 'services.msc' –

9

我只是有這個問題,並能夠通過以下步驟來解決它。如果您跳過這些步驟,您的安裝項目將構建並將您的文件複製到正確的目錄;但是,如果沒有這些步驟,他們將不會將您的二進制註冊爲服務。

  1. 在解決方案資源管理器中,右鍵單擊安裝項目,指向查看,然後選擇自定義操作。自定義操作編輯器出現。

  2. 在自定義操作編輯器中,右鍵單擊自定義操作節點並選擇添加自定義操作。出現在項目中選擇項目對話框。

  3. 雙擊列表框中的應用程序文件夾將其打開,從MyNewService中選擇主輸出(Active),然後單擊確定。主要輸出被添加到自定義操作的所有四個節點:安裝,提交,回滾和卸載。

  4. 構建安裝項目。

+0

這一個爲我工作。無法弄清爲什麼服務從services.msc中丟失,並忘記(doh!)將服務添加到安裝程序。 – cymorg

+1

在vs2012中沒有「安裝項目」選項如何解決呢? –