2020-07-23

引用 Topshelf 無法進行偵錯的經驗

Topshelf 是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。

只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示使用Topshelf語法所帶入的相關資訊,但顯示完之後旋即關閉,亦無法進行偵錯,花了不少時間才找到原因。



個人碰到以下幾種原因:

1. 專案的組態檔(App.config)有問題

一開始我是複製先前的某專案過來,想修改成另一個略有不同的Service,但一直無法偵錯,以為是撰寫上的錯誤,直到改回與原本幾乎相同的程式碼,反覆比對後才發現是Config有問題,該專案引用的某自訂的ConfigurationSection移植過來後,相關的namespace及設定有錯。

2.同名的服務正在執行中

會在Visual Studio的視窗中看到以下這樣的訊息:
[YourServiceName] service is running and must be stopped before running via the console

撰寫的Service可能已安裝在本機並正在執行中,但同時我們可能又在持續開發或調整該專案的相關程式,則也會造成無法進行Debug.


自帶安裝程式的Topshelf,是我個人目前寫 Window Service 不可或缺的套件,也真的也方便進行開發及Debug的動作,非常推薦使用,也希望可以幫到一些"突然"不能偵錯的朋友。;)

沒有留言:

張貼留言

引用 Topshelf 無法進行偵錯的經驗

Topshelf  是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。 只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示...