C# 開發windows 服務

來源:互聯網
上載者:User

一、 window服務是什麼

 當你單擊“開始”,執行“services.msc”命令。就會看見如下視窗。它顯示的是當前作業系統中系統內建的服務或者第三方軟體安裝的服務。服務的狀態有名稱、描述、啟動狀態、啟動類型等等。你也可以在此表單中管理相關服務,注意謹慎操作,防止系統錯誤或軟體故障。

二、建立一個Windows Service
1)建立Windows Service項目

2)對Service重新命名
將Service1重新命名為你服務名稱,這裡我們命名為ServiceTest。
二、建立服務安裝程式
1)添加安裝程式


之後我們可以看到,自動為我們建立了ProjectInstaller.cs以及2個安裝的組件。
2)修改安裝服務名
右鍵serviceInsraller1,選擇屬性,將ServiceName的值改為ServiceTest。

3)修改安裝許可權
右鍵serviceProcessInsraller1,選擇屬性,將Account的值改為LocalSystem。

三、寫入服務代碼
1)開啟ServiceTest代碼
右鍵ServiceTest,選擇查看代碼。
2)寫入Service邏輯
添加如下代碼:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;

namespace WindowsServiceTest
{
public partial class ServiceTest : ServiceBase
{
public ServiceTest()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Start.");
}
}

protected override void OnStop()
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Stop.");
}
}
}
}

這裡我們的邏輯很簡單,啟動服務的時候寫個日誌,關閉的時候再寫個日誌。

四、 Windows服務的安裝和卸載

方法一:cmd命令方式

單擊開始,執行cmd命令。在彈出cmd視窗中安裝或卸載服務。

1、 安裝服務: sr start為啟動服務

基本命令,如下:

%systemroot%\microsoft.net\framework\v2.0.50727\installUtil.exe E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe
sc start "ServiceTest"

方法二:bat檔案方式:

原理就是方法一,只是把安裝和卸載服務的命令放到ServiceTestInstaller.bat和ServiceTestUnInstaller.bat中。而且為了減少使用者自己寫指令碼,可以開發一個工具CreateServiceSetup.exe負責產生制定Window服務的安裝和卸載指令碼bat檔案。

ServiceTestInstaller.bat 代碼如下:

%systemroot%\microsoft.net\framework\v4.0.30319\installUtil.exe E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exesc start "ServiceTest"echo ServiceTest服務安裝完成! echo. & pause 

1、 安裝服務
步驟1:雙擊ServiceTestInstaller.bat 安裝服務,介面如下:

步驟2:如,顯示結果安裝服務成功,接下來我們去服務管理介面,查看服務是否出現。如所示。開始——運行,輸入 services.msc

2、卸載服務
ServiceTestInstaller.bat 代碼如下:

%systemroot%\microsoft.net\framework\v4.0.30319\installUtil.exe /u E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exesc stop "ServiceTest"echo ServiceTest服務卸載完成! echo. & pause 

執行ServiceTestInstaller.bat,如:
 

四、 Window 服務如何調試

首先安裝好服務,然後剩下的事情就和普通程式調試一樣了。

注意安裝的路徑,應該是程式所在的Bin\Debug\下的服務程式exe檔案。

五、 Window 服務的使用價值

1、 建立定時執行的工作任務。

2、 建立伺服器監控程式。

3、 公用的應用程式提供者。

4、 其他用途。

六、 Window服務使用演習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.