我是自己寫了一個windows服務,並且在之前一直運行良好,上周四晚上之后,竟然莫名其妙的停止了,我登上遠程服務器,才發現,該服務已經停止,當我手動打開該服務時,提示我如下錯誤,找不到指定路徑:。
一開始我懷疑是不是有人人為的給我刪掉了,但是我找了一下我的存放路徑,發布文件還在,這就有點郁悶了,東西好好地都在,為什么突然就找不到路徑了呢?我推測的答案是因為注冊表文件被病毒,或者殺毒軟件之類的修改了。
帶着這個問題,我去網上搜了一下,大部分人都在說是因為注冊表文件里面的地址不對,然后我就去打開注冊表文件,發現里面根本就沒有他們說的那個ImagePath這個項,后來我想既然沒有,那我自己人為 的給他添加一個不就可以了,然后我就去添加,新增了之后竟然無法保存,后來,有人說,是金山毒霸的原因,但我本地沒有金山,所以我就聯系到可能是360殺毒的原因,於是我關掉360殺毒,沒想到果然成功了,我給加上ImagePath項之后,才發現,此時報錯誤5:拒絕訪問,原因是我添加的路徑不對,導致無法找到文件。
關於這個問題,可以參考:https://blog.csdn.net/weixin_42799447/article/details/83784275
其實到這里,你就應該知道該怎么做了,既然注冊表文件都已經損壞,連ImagePath都沒有了,那你就只能重新部署安裝了。
另外,我又重新卸載安裝,嘗試了多次,未見其果,后來才知道我的原因應該是,在卸載的時候不徹底,導致后續重新安裝的服務,還是定位到了以前的注冊表文件。
后來,我只好重新修改了一下服務的名稱和ID,將它發布安裝之后,打開注冊表文件,此時已經有ImagePath這個項了,而且也有相應的路徑,經過測試,服務可用。
當然這種方法,只建立在該服務對你自己有用的前提下,如果是系統服務的話,修改之前,請先做好備份,一旦出錯,可能會面臨系統崩潰的問題。
總結一下,其實我的方法就是,相當於重新寫了一下服務,改了個名字和ID,煥然一新,但是功能還是如此。