自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#創(chuàng)建Service模板

開發(fā) 后端
這里介紹C#創(chuàng)建Service模板,看看如何實現(xiàn)一個最基本的windows Service,以及如何來調(diào)試windows Service模板。

現(xiàn)在的.NET框架已經(jīng)為Windows Service的開發(fā)提供足夠強(qiáng)大的支持,你只需要關(guān)注Service所要實現(xiàn)的邏輯,而完全不用關(guān)心Service底層是如何實現(xiàn)的,相比以前用MFC 來說,真是質(zhì)的飛躍啊。閑話少談,看看如何實現(xiàn)一個最基本的windows Service,以及如何來調(diào)試windows Service模板.

打開VS 2005,點擊File->New->Project…,在C#創(chuàng)建工程向?qū)е羞x擇Windows Service模板。

在工程名輸入框中,輸入TestService然后點擊OK.VS為我們生成了最基本的代碼,我們將Service的名稱改為我們期望的名稱,在 solution explorer中右鍵點擊vs自動生成的Service文件“Service1.cs”,在彈出的菜單中選擇Rename,輸入 “MyFirstService”,然后切換到設(shè)計視圖,也就是在solution explorer中雙擊MyfirstService.cs,在Property Explorer中將ServiceName屬性改為MyFirstService,這時一個可運行的windows Service已經(jīng)C#創(chuàng)建成功。我們添加一些代碼來測試一下這個Service,最簡單的測試方式就是向windows event log里來添加一些消息以顯示我們的Service的狀態(tài)。

我們需要一個EventLog組件向windows log中添加信息,在solution explorer中雙擊MyfirstSerivce文件切換到設(shè)計視圖,將工具箱中的EventLog組件拖到設(shè)計視圖中,我們保留EventLog組件的默認(rèn)名稱eventLog1.選中eventLog1,在property explorer中將Log屬性選為Application,在Source屬性中輸入“MyFirstService”。接下來,我們在設(shè)計視圖的空白處,右鍵點擊,并選擇View Code切換到代碼視圖,在OnStart和OnStop方法里輸入代碼實現(xiàn)日志寫入,代碼如下:

要運行這個Service我們還要做下邊的幾個步驟:

1.為我們的Service添加Installer,右鍵點擊設(shè)計視圖,選擇Add Installer,VS將會為我們添加ProjectInstaller.cs,并在ProjectInstaller中添加組件 ServiceInstaller1和ServiceProcessInstaller1,現(xiàn)在我們來修改他們的屬性來控制Service的安裝和啟動選項。在ProjectInstaller得設(shè)計視圖中選中ServiceProcessInstaller1,將它得Account屬性選為 LocalSystem,這樣以這個帳號服務(wù)啟動。如果你希望系統(tǒng)啟動時自動啟動服務(wù)得話,將ServiceInstaller1的StartType的屬性選為Automatic,如果手動啟動的話,選為manaul.

2.安裝Service,我們要用到IntallUtil.exe這個程序,這個程序位于C:\WINDOWS\Microsoft.NET \Framework\v2.0.50727.點擊開始菜單,選擇“運行”,在運行對話框中輸入cmd,進(jìn)入到命令行窗口,輸入cd :\WINDOWS\Microsoft.NET\Framework\v2.0.50727,進(jìn)入到這個目錄,然后輸入installutil F:\Programs\C#\TestService\TestService\bin\Debug\testserveice.exe, installutil后邊的內(nèi)容就是我們的工程生成的可執(zhí)行程序的路徑,情根據(jù)需要修改。

如果你給ServiceInstaller1的StartType設(shè)為Automatic的話,安裝完服務(wù),服務(wù)已經(jīng)運行起來了,如果 StartType是Manual的話,你需要手動啟動?,F(xiàn)在我們進(jìn)入“服務(wù)”,要打開“服務(wù)”,請單擊“開始”,指向“設(shè)置”,然后單擊“控制面板”。依次單擊“性能和維護(hù)”、“管理工具”,然后雙擊“服務(wù)”。在里邊你應(yīng)該能夠看到我們制作的Service MyFirstService.在這里邊,我們可以啟動,關(guān)閉服務(wù),還可以設(shè)置服務(wù)的啟動類型。然后,我們看看服務(wù)有沒有正確的寫入日志,我們需要進(jìn)入到事件查看器,要打開“事件查看器”,請單擊“開始”,指向“設(shè)置”,然后單擊“控制面板”。單擊“性能和維護(hù)”,單擊“管理工具”,然后雙擊“事件查看器 ”。

如果你不需要這個Service了,仍然使用InstallUtil這個程序來卸載,不過在InstallUtil后跟參數(shù) –u,比如installutil –u F:\Programs\C#\TestService\TestService\bin\Debug\testserveice.exe.

Service的調(diào)試方法與普通的程序調(diào)試方法是不一樣的。我來介紹一下。

1. Build你的項目

2. 設(shè)置斷點,因為我們的Service非常的簡單,沒有什么執(zhí)行邏輯,所以設(shè)置斷點沒有任何意義,大家可以自己寫一些代碼來實踐。一般來說,我們服務(wù)里需要用到一個另外的線程來執(zhí)行任務(wù),你需要在線程的執(zhí)行代碼中來設(shè)置斷點。

3. 安裝Service,我們前邊有介紹如何安裝。

4. 如果你的Service啟動類型是手動(Manual),你需要到“服務(wù)”里啟動你的Service.一般來說,如果你的Service在開發(fā)階段,我推薦你將Service的啟動類型設(shè)置為Manual,這樣便于調(diào)試,因為如果Service在運行過程中,你將無法build工程。

5. 在VS中,從菜單中選擇Debug->Attach Process…。

如果你找不到自己的Service,請選中Show processes from all users.在Available processes列表中選中我們的Service所在的進(jìn)程TestService,然后點擊Attach按鈕,如果你設(shè)置的斷點合理的話,那么,程序就會停在斷點處,接下來你就可以進(jìn)行調(diào)試了。

  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.ComponentModel;  
  4. usingSystem.Data;  
  5. usingSystem.Diagnostics;  
  6. usingSystem.ServiceProcess;  
  7. usingSystem.Text;  
  8.  
  9. namespaceTestService  
  10. {  
  11. publicpartialclassMyFirstService:ServiceBase  
  12. {  
  13. publicMyFirstService()  
  14. {  
  15. InitializeComponent();  
  16. }  
  17.  
  18. protectedoverridevoidOnStart(string[]args)  
  19. {  
  20. //TODO:Addcodeheretostartyourservice.  
  21. eventLog1.WriteEntry("Servicestart");  
  22. }  
  23.  
  24. protectedoverridevoidOnStop()  
  25. {  
  26. //TODO:Addcodeheretoperformanytear-downnecessaryto  
  27. stopyourservice.  
  28. eventLog1.WriteEntry("Servicestop");  
  29. }  
  30. }  

以上介紹C#創(chuàng)建Service模板

【編輯推薦】

  1. 介紹Mono C#編譯器
  2. C#運算符重載學(xué)習(xí)總結(jié)
  3. 概述C#語言的結(jié)構(gòu)體
  4. C#遺傳算法學(xué)習(xí)筆記
  5. 討論C#分部方法
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-08-11 13:27:22

C#創(chuàng)建Web Ser

2009-08-20 15:38:50

C#建立Web Ser

2009-08-11 11:07:49

Java調(diào)用C# we

2009-08-24 17:24:28

C#創(chuàng)建XML文檔

2009-08-06 16:44:03

C#創(chuàng)建WebServ

2009-08-10 13:40:46

創(chuàng)建C# COM對象

2009-09-03 09:40:57

C#創(chuàng)建表單

2025-02-10 09:34:15

2009-08-11 14:16:00

Winform調(diào)用WEC#

2009-09-01 13:51:51

C#創(chuàng)建Word文檔

2009-08-24 17:46:54

C#創(chuàng)建XML文檔

2009-09-01 14:39:47

C#創(chuàng)建Excel文件

2009-09-02 17:16:01

冒泡排序

2009-09-01 11:07:58

C#項目

2009-08-28 16:29:02

C#類庫工程

2009-08-27 17:31:44

C#創(chuàng)建Windows

2009-08-10 13:34:11

創(chuàng)建C# COM對象

2009-08-25 17:28:23

C#創(chuàng)建DataSet

2009-08-14 11:00:16

C#創(chuàng)建Windows

2009-08-25 17:24:55

C#串口通信程序
點贊
收藏

51CTO技術(shù)棧公眾號