如何將控制台程式發布為服務

2021-09-23 14:06:55 字數 2388 閱讀 6058

今天分享一種不一樣的方式.

一. 這裡貼一下我們的program類

1.program.cs

using ivony.html;

using ivony.html.parser;

using system;

using system.collections.generic;

using system.configuration;

using system.io;

using system.linq;

using system.net;

using system.text;

using system.threading.tasks;

using system.serviceprocess;

using system.diagnostics;

using system.threading;

namespace 爬蟲framework

catch (exception e)

", e.tostring());

console.readkey();}}

/// /// 執行緒

///

public static void threadstart()

public static void pachong()

private static void start(string args)

else if (string.compare(s, @"/u", true) == 0)

else if (string.compare(s, @"/r", true) == 0)

else

}else

;servicebase.run(servicestorun);}}

catch (exception ex)

}/// /// 安裝本服務

///

static void setupwinservice(bool isinstall)

else

string windir = environment.getfolderpath(environment.specialfolder.windows);

string tools = system.io.path.combine(windir, util);

if (isinstall)

else

}catch (exception ex)

}static void exec(string exe, string param)

catch (exception ex)}}

}

說明: 

1. 這裡用到了多執行緒,是因為有些程式業務邏輯可能比較複雜和有多個迴圈的,在啟動服務時會導致啟動超時.

二. 新增windows服務.

1.新增服務

2.修改服務

右擊該服務=> 選擇 檢視** 

新增 program.threadstart();  如下

partial class pachong : servicebase

protected override void onstart(string args)

protected override void onstop()

}

3.設定屬性

雙擊該服務=>右擊 => 新增安裝程式 

選擇serviceprocessinstaller1 設定account 為 localsystem 

**和設定部分已完成,生成專案.

三.安裝服務

1.以管理員身份執行 cmd

2.進入生成目錄:e:\>cd e:\test\爬蟲\爬蟲framework\bin\debug

3.執行安裝命令: e:\test\爬蟲\爬蟲framework\bin\debug>爬蟲framework.exe /i

四.啟動服務

此時可以在服務中找到我們已經安裝的服務,服務的名稱就是我們新增的windows服務的名稱.

如何將控制台資訊列印到指定檔案中?

首先建立列印流物件 printstream printstream new printstream filepath 然後將流物件交給系統輸出 system.setout printstream 最後,任意的system.out.print 輸出的內容都會列印在filepath下,控制台不再顯示列印...

C 控制台程式如何發布到伺服器Linux上執行

目錄 如上圖所示,選擇linux開發平台,我用的vs2019,net5.0,一直點下一步,建立。using linuxtcpapp.tcpserver using system using system.net namespace linuxtcpapp 程式設計客棧 private static ...

如何將自己的控制台程式改造為支援命令列動態引數呼叫

目前專案上使用的netcore 進行跨平台支援,工具由以前的windows程式轉變為console控制台形式進行互動。但是對於開發人員來說控制台輸入引數比較繁瑣,所以對工具進行了改造,支援dontnet傳參形式 所有的使用者輸入均是採用console.readline 獲取之後呼叫方法進行值校驗。c...