2013-02-28 63 views
2

我一直花費大量的時間閱讀有關sc.exe作爲Windows服務運行可執行文件,它似乎應該是相當直接ü我有一些問題得到它的工作沒有此錯誤:錯誤1053該服務沒有及時響應或控制請求。sc.exe將exe作爲服務安裝?

我得到要安裝的服務,它在服務列表中,但它不允許我啓動它。這就是我正在使用的基本嘗試:

>sc create TestService binPath= "C:\Program Files (x86)\[path.exe]" DisplayName= "TestingServices" start= auto 

我在做什麼錯?我嘗試作爲服務運行的exe文件是否必須設置爲正確地作爲服務運行?我不認爲是這種情況,因爲有可以運行任何exe作爲服務的程序。我正在嘗試做同樣的事情,我該怎麼做?

+0

什麼您是否在事件日誌中觀察到錯誤? – abatishchev 2013-02-28 04:30:13

回答

5

您不能僅將任何可執行文件作爲服務運行;可執行文件需要專門編寫以包含服務循環。服務迴路接收控制請求(例如,啓動,停止,重新啓動,暫停),並且必須執行處理,例如啓動初始化,停止清理等,並響應這些控制請求,否則服務控制管理器將終止它。

+0

有沒有辦法讓一個不被設計成一個服務運行的服務在後臺運行?我知道這是可能的,因爲那裏有程序可以做到這一點,但我想像它那樣運行就像我正在嘗試做的那樣更復雜一點。有沒有一種簡單的方法來運行一個不被設計成服務即服務的exe(只是爲了讓它始終運行)。 – KJ3 2013-02-28 04:53:18

+2

*作爲服務運行*意味着它旨在響應服務控制請求。你有沒有看過一個不適合服務控制請求的exe文件,這是爲響應服務控制請求而設計的?仔細想想你的問題。不要問X,因爲X似乎是做Y的方式。問Y ...假定你有這個源代碼,實現一個服務主體並不困難。你有沒有嘗試過? – Sebivor 2013-02-28 05:01:55

1

嘗試使用

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe Assembly.exe|dll 

代替。

0

3個月前我有同樣的問題..我剛剛檢查了這個sample。然後按照你所做的相同的語法。然後瞧!它很好!

0

@UndefinedBehaviour是正確的,也有一些變通,雖然

  • SrvAny.exe - 從WINNT資源工具包,相當長看在牙齒現在
  • firedaemon - 第三方商業產品