標籤:
問題 : 根據客戶的需求做了一個小程式,需要有對WindowsService 安裝,卸載,啟動,停止的操作。
編譯好之後在我的工程內直接Run 沒問題。直接在\bin\Debug 點小程式運行,任何操作也沒問題。
由於客戶要求免安裝。
於是我把Debug 檔案夾拷到案頭上運行,其他功能都ok,但是涉及到WindowsService的時候啟動總是報錯:“無法啟動電腦“.”上的服務”。
追錯思路:
於是案頭上程式的安裝好了服務之後:1。用bin檔案夾下的程式來啟動也是這個錯;2,用工程直接跑起來啟動也是報這個錯。
於是把服務卸載。用工程跑起來或者bin檔案夾下安裝好服務,然後分別用案頭上的程式啟動,沒問題。其他動作也都正常。
於是斷定 在案頭上的程式安裝服務的時候出了問題。但是到底是出了啥問題,偶是百思不得其解,到網上搜,也找到解決方案。
在此請各位路過的大俠集思廣益,幫小妹解決這個麻煩。
不勝感激。
補充一下,手動啟動時也是報這個錯誤,沒有多餘的錯誤資訊了,╮(╯▽╰)╭。
個人感覺是許可權分配的問題,但又不知如何下手。先自己搗鼓搗鼓去。
哎,問題解決了,但原因還不清楚到底為什麼,等有空了再回來研究研究。
解決方案:把案頭上的目錄移到D盤根目錄(或者其他正常的目錄應該也可以)就可以了。
一般是賬戶許可權的問題,你放服務應用程式的folder沒相應許可權
今天在客戶這發布後又出現了這個問題,仔細研究了一下,發現在安全裡,把Authenticated Users這個使用者添加上就不報錯了。問題又來了,怎樣在代碼裡把許可權加上呢
目前終於算是把這個問題給清了,解決方式是,調用安裝方法之前在程式裡調用dos命令:
CACLS Comm.dll /G Everyone:F
緊跟著再輸入一個Y,許可權就賦好了。
煩了我這麼長時間的一個問題終於解決了,分一下分,以示慶祝。\(^o^)/
參考: http://bbs.csdn.net/topics/340228918
WindowsService 安裝後報錯: 無法啟動電腦“.”上的服務 解決方案