2016-06-07 393 views
0

我不斷收到此錯誤:Windows服務不停止無重啓?

Error 1061: The service cannot accept control messages at this time

發生這種情況時,我試圖停止服務使用InstallUtil安裝了此位置:C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ InstallUtil.exe

我正在嘗試調試有問題的Windows服務。我的問題是,每次我試圖對代碼庫進行更改時,計算機「物理機 - Dell Precision T3500」要求在重新安裝之前重新啓動整個機器以完全卸載該服務。

我看過this Link,它在我的場景中沒有任何幫助,因爲我首先必須停止該服務才能夠獲得對構建生成的位置的完全訪問權限。

雖然服務正在嘗試我做PC重啓之前重新啓動,當我試圖從我的代碼生成服務,我從編譯器這個有趣的錯誤:

Error 16 Unable to copy file "obj\x86\Debug\X_WindowsService.exe" to "bin\x86\Debug\X_WindowsService.exe". The process cannot access the file 'bin\x86\Debug\X_WindowsService.exe' because it is being used by another process. X_WindowsService

因爲有誤差以上我也認爲這就是爲什麼我不能使用here的SO解決方案。

有沒有人有一個聰明的想法,讓我經過旁路不得不重新啓動機器,因爲我調試和更改我的代碼庫?

我也看過來自SO的this link,但它沒有標記的解決方案,我也嘗試過其中一個解決方案,但它也沒有適用的解決方案,因爲他們建議重新啓動,我試圖避免。

+0

IIRC,.NET服務中錯誤1061最常見的原因是OnStart()函數不能退出。 –

+0

所有我在的OnStart()方法做的是一些錯誤記錄的東西的物理文件的位置,然後我打開並啓動一個線程,例如: _Thread =新主題(新的ThreadStart(X_Start)); _thread.Start(); 還有什麼我應該在那裏做優化服務? – Sizons

+0

您是否檢查過「.CanStop」設置爲true? –

回答

0

找到這個解決方案後我覺得很無聊。我當然應該使用KISS原則。

原來,我所要做的只是從任務管理器中尋找服務的進程,並簡單地結束任務。之後,刷新到我的服務列表顯示服務狀態爲空白,這意味着它已完全停止,無需重新啓動機器。