windowsSevice程式和topshelf程式建立服務對比

龐順龍發表於2019-05-11

區別主要在於以下幾點:

1、編寫方式
    一個是windowservice
    一個是console控制檯程式

2、安裝方式
    windowservice 需要自帶的framework中的installutil
    topshelf打包的控制檯程式自己隨意安裝

3、部署
    理論不通過其他手段一個windowservice部署資料夾包只能部署一個服務,想部署多套相同服務,需要拷貝多個相同資料夾進行多次安裝
    topshelf則可以多個服務指向一個資料夾

4、除錯
    windowservice除錯,不解釋多麻煩
    console控制檯程式除錯簡單方便



安裝:%systemroot%\microsoft.net\framework\v2.0.50727\installUtil.exe D:\Debug\WindowsService1.exe

解除安裝:sc delete服務名

net start 服務名

net stop 服務名

sc start 服務名

sc stop 服務名

部署windows服務--製作安裝包

1、建立一個新的windows服務專案Server1    

2、開啟Service1程式碼檢視,找到OnStart部分,加入程式碼   

3、切換到設計檢視,右鍵-新增安裝程式    

4、切換到新生成的ProjectInstaller.cs設計檢視,找到serviceProcessInstaller1Account屬性設定為LocalSystem,對serviceInstaller1ServiceName屬性設定為Server1(服務的名字),StartType屬性設定為Automatic(系統啟動的時候自動啟動服務)     



1、 Topshelf下載地址https://github.com/Topshelf/Topshelf/downloads

2、 官網http://topshelf-project.com/

3、 文件http://docs.topshelf-project.com/en/latest/

4、 install:  ConsoleApplication1.exe install 

5、 start:   ConsoleApplication1.exe start ,執行後服務被啟動

6、 stop:   ConsoleApplication1.exe stop ,執行後服務被停止

7、 uninstall:   ConsoleApplication1.exe uninstall,執行後服務被解除安裝

8、 很方便的安裝解除安裝服務,同時我們本地除錯也很簡單,直接執行控制檯即可

9、 下面我們再嘗試一個方法,使用同一個ConsoleApplication1.exe建立若干個服務

10、 引數-instance執行安裝  ConsoleApplication1.exe -instance " test1" install

11、同理再建立一個例項   ConsoleApplication1.exe -instance " test2" install

你會發現你的系統服務裡增加了兩個相同服務的不同例項 ,若要解除安裝直接將安裝時的命令install 換位uninstall即可解除安裝

龐順龍最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章