我正在運行Win 7 Pro 64位。我使用.NET 4框架在C#中編寫了一項服務。它安裝正確並開始運行。我知道它運行是因爲它將一些輸出寫入日誌文件。但是,幾秒鐘後它就會死亡。當我使用Visual Studio 2010 Pro來運行相同的代碼而不是服務時,它永遠不會死亡。所以,我明顯的問題是關於用於調試的適當方法,因爲我無法弄清楚爲什麼它應該作爲服務而死,而不是作爲非服務而死。我已經在代碼中的幾個地方寫入了日誌文件,但它似乎每次都會在不同的地方死去。該應用程序有3個線程。歡迎任何建議。服務運行然後死亡
Q
服務運行然後死亡
1
A
回答
0
使用System.Diagnostics.Debugger.Launch
將其作爲服務運行並調試。如果在這種情況下不會崩潰,請添加其他日誌記錄,並確保添加頂級捕獲以寫出任何錯誤。如果仍然不能創建崩潰轉儲文件並使用SOS和windbg進行檢查。
4
如果您直接從Service的Start方法中運行代碼,則很容易發生此行爲。問題在於服務的啓動方法有望啓動該服務,並且立即返回。如果它在那裏執行代碼,Windows將終止你的服務。
正確的處理方法是讓服務的Start()方法在專用線程中運行代碼。除了線程創建和立即返回之外,它不需要任何東西。如果這是問題,只需設置一個前臺線程並將您的邏輯放在那裏,它可能會正常工作。
相關問題
- 1. 服務運行然後死
- 2. Android服務死亡
- 3. Android AudioFlinger服務器死亡|媒體服務器死亡
- 4. Web服務在一小時後死亡
- 5. Azure服務在幾天後死亡
- 6. Android開發:服務死亡
- 7. Android服務意外死亡
- 8. VS2012 - 突然死亡
- 9. Tomcat突然死亡
- 10. 媒體服務器死亡。,相機死亡,錯誤100
- 11. Selenium Webdriver打開Firefox,然後死亡
- 12. 睡眠後死亡
- 13. 接收到廣播後死亡的後臺服務
- 14. Android服務死亡,然後自動重新啓動,並且工作正常
- 15. 服務與活動一起死亡
- 16. IMediaDeathNotifier:媒體服務器死亡
- 17. Android服務非常迅速地死亡
- 18. Java套接字服務器死亡
- 19. 安卓移植:「服務」SurfaceFlinger「死亡」
- 20. 開始服務線程死亡
- 21. Puma服務器無故死亡
- 22. 安卓:DRMManager將服務器死亡
- 23. QML Camera在Android中運行死亡
- 24. 當python進程死亡時運行atexit()
- 25. 爲什麼我的RMI服務器在20小時後死亡
- 26. Android服務在應用程序死亡後停止
- 27. 在後臺運行php腳本,永遠不會死亡linux
- 28. Spark工人在運行一段時間後死亡
- 29. 死亡
- 30. ORA-12805:並行查詢服務器意外死亡
您的Windows事件日誌有說什麼嗎? – keyboardP
同一個線程每次首先死亡嗎? – soandos
在「Start()」方法中是你的邏輯嗎? –