欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#創(chuàng)建windows服務入門教程實例

 更新時間:2014年04月14日 09:53:20   作者:  
windows服務是windows系統(tǒng)中一類特殊的應用程序,一般情況下它們只會在后臺運行,不會影響前臺操作,非常適合做一些不需要用戶參與的而又需要長時間執(zhí)行的任務

用c#中創(chuàng)建一個windows服務非常簡單,與windows服務相關的類都在System.ServiceProcess命名空間下。

每個服務都需要繼承自ServiceBase類,并重寫相應的啟動、暫停、停止等方法。

windows服務的相關信息是存放與注冊表中的,所以他可以在不需要用戶登錄的情況下自動運行,在c#中你不需要再直接向注冊表中添加信息了,c#提供了服務安裝類 ServiceProcessInstaller和ServiceInstaller來實現(xiàn)服務的安裝。

首先,用vs創(chuàng)建一個windows服務項目

2014-02-13_095454

成功后你可以看到

2014-02-13_095922

Program中只包含服務運行的相關信息

復制代碼 代碼如下:

/// <summary>
/// 應用程序的主入口點。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()//這里是一個數(shù)組,意味著我們可以在一個服務進程中創(chuàng)建多個服務實例,只需要在這里加上即可
};
ServiceBase.Run(ServicesToRun);
}

Service1.cs就是我們需要的服務類,與windows服務相關的基本操作大都可以在這里找到,如:Start,Stop,Pause,Continue等,我們要做的就是根據(jù)這些操作做不同的處理就可以了。

我們先在服務Start和Stop時分別記錄一條信息到D盤

復制代碼 代碼如下:

protected override void OnStart(string[] args)
{
File.AppendAllText("d:" + this.GetType().Name + ".txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 服務啟動"));
}
protected override void OnStop()
{
File.AppendAllText("d:" + this.GetType().Name + ".txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 服務停止"));
}

一個簡單的服務就完成了,下一步添加安裝信息

雙擊項目中的Service.cs轉到服務設計界面,在空白處右鍵選擇“添加安裝程序”

2014-02-13_100931

vs會自動創(chuàng)建一個默認名稱為ProjectInstaller.cs的文件并轉到相應的設計界面

默認添加兩個類 serviceProcessInstaller1和serviceInstaller1,第一個主要用來設置服務所屬賬戶,關系到服務的運行,第二個是服務信息描述,如:服務名、是否自動啟動等

右鍵serviceProcessInstaller1屬性,將Account屬性選擇為LocalSystem

2014-02-13_101602

右鍵serviceInstaller1屬性,將StartType屬性設為Automatic(自動啟動),Description為“我的第一個windows服務”

全部保存后生成,找到生成的程序。

2014-02-13_101956

由于windows服務不能通過雙擊直接運行,所以我們需要借助.net提供的InstallUtil.exe來安裝服務。

2014-02-13_102233

按回車開始安裝,成功后會提示 “提交”階段已成功完成,如果失敗則是“回滾”階段已成功完成

2014-02-13_102400

打開windows服務管理器就能看到我們安裝的服務,默認服務安裝成功后不會立刻啟動,需要我們手動啟動

2014-02-13_102549

如果不出意外,會顯示已啟動

2014-02-13_102659

到D盤目錄下找到Service1.txt,打開會看到我們填入的信息,說明我們做的windows服務已經(jīng)成功了。

要卸載windows服務可以用InstallUtil.exe /u WindowsService1.exe來卸載或通過系統(tǒng)命令 sc delete 服務名來卸載。

相關文章

最新評論