.net開發windows服務小結

來源:互聯網
上載者:User

標籤:

    今天學習了在.net下建立一個windows服務,總結一下學習心得。    開發環境:visual studio 2012 一、編寫程式  (1)建立一個空解決方案  (2)添加一個控制台應用程式項目  (3)添加一個Windows服務,如下所示:   (4)右鍵 查看代碼    看到如下代碼:
public WindowsService(){    InitializeComponent();}protected override void OnStart(string[] args){            }protected override void OnStop(){            }

  其中,OnStart方法在 啟動服務時執行;OnStop方法在 停止服務時執行;還有兩個重載方法:OnPause、OnContinue,分別在 暫停服務時執行、恢複服務時執行;它們對應於所示的操作:

  

  (5)添加代碼:  

private Thread timerThread;/// <summary>/// 啟動服務時執行/// </summary>/// <param name="args"></param>protected override void OnStart(string[] args){    File.AppendAllText("D:\\1.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":windows服務開始工作!\r\n", Encoding.Default);    timerThread = new Thread(new ThreadStart(Start));    timerThread.Start();}/// <summary>/// 停止服務時執行/// </summary>protected override void OnStop(){    timerThread.Abort();    File.AppendAllText("D:\\1.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":windows服務結束工作!", Encoding.Default);}private void Start(){    while (true)    {        using (StreamWriter writer = new StreamWriter("D:\\1.txt",true,Encoding.Default))        {            writer.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":每十秒鐘輸出一次!");        }        Thread.Sleep(10 * 1000);    }}

 

  (6)安裝程式,設定屬性

  在設計器中添加安裝程式

  

    會產生一個ProjectInstaller.cs檔案,如所示:

    

    然後需要做兩件事情:

      ①設定serviceProcessInstaller1控制項的Account屬性為“LocalSystem”

      ②設定serviceInstaller1組件的StartType屬性為Automatic,把服務設定為自動啟動

  (7)啟動服務

    開啟vs的開發人員命令提示 工具 以管理員身份運行

    

    執行如下所示命令:

    

    ①進入到項目所在檔案夾,並進入\bin\Debug\路徑下

    ②安裝服務命令:installutil ConsoleApplication.exe,然後就可以在服務列表中看到我們啟動的服務:

    

    卸載服務的命令是:installutil /u ConsoleApplication.exe

    當我們修改代碼後,需要把服務先卸載,才能重建成功

    ③啟動服務

      啟動服務後,等一會兒再停止服務,然後我們開啟D盤下的1.txt文檔,可以看到所示的結果:

    

 

二、調試

  在服務啟動並執行狀態下,我們找到功能表列,調試——>附加到進程

  

  注意勾選“顯示所有使用者的進程”,選項,找到我們的進程,點擊附加,然後在程式中添加斷點,就可以偵錯工具了!

  

.net開發windows服務小結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.