日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何編寫C#Windows服務(wù)

1、新建C# Windows服務(wù):windows service工程

創(chuàng)新互聯(lián)建站致力于做網(wǎng)站、網(wǎng)站制作,成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標準化,推過標準化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián)建站,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

 

2、新建windows service工程后,系統(tǒng)自動生成一個Service1.cs文件,默認是其設(shè)計視圖。選擇查看其代碼,默認有構(gòu)造函數(shù)、OnStart、OnStop三個函數(shù),如下圖所示:

  

 3、新建了C# Windows服務(wù)之后,還要設(shè)置該服務(wù)運行的周期,左側(cè)的ToolBox中有兩個timmer,一個在組件下,一個在windows form下,可惜這兩個都不能用,我們要手工新建一個timmer,并設(shè)置其屬性和事件。

 
 
 
 
  1. public WindowsServiceDemo()   
  2.         {   
  3.             InitializeComponent();   
  4.             System.Timers.Timer t = new System.Timers.Timer(1000);//實例化Timer類,設(shè)置間隔時間為10000毫秒;    
  5.             t.Elapsed += new System.Timers.ElapsedEventHandler(TimeElapse);//到達時間的時候執(zhí)行事件;    
  6.             t.AutoReset = true;//設(shè)置是執(zhí)行一次(false)還是一直執(zhí)行(true);    
  7.             t.Enabled = true;//是否執(zhí)行System.Timers.Timer.Elapsed事件;   
  8.         }   
  9.  
  10.  
  11. public void TimeElapse(object source, System.Timers.ElapsedEventArgs e)   
  12.         {   
  13.             //EventLog log = new EventLog();   
  14.             //log.Source = "我的應(yīng)用程序";   
  15.             //log.WriteEntry("1秒調(diào)用一次", EventLogEntryType.Information);   
  16.             FileStream fs = new FileStream(@"d:\timetick.txt", FileMode.OpenOrCreate, FileAccess.Write);   
  17.             StreamWriter m_streamWriter = new StreamWriter(fs);   
  18.             m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);   
  19.             m_streamWriter.WriteLine("過了一秒 " + DateTime.Now.ToString() + "\n");   
  20.             m_streamWriter.Flush();   
  21.             m_streamWriter.Close();   
  22.             fs.Close();   
  23.     
  24.         }  

4、服務(wù)編寫之后,還不能由SCM(服務(wù)控制管理器)進行管理,需要給該服務(wù)添加裝載器。在Service1.cs的設(shè)計視圖,點擊右鍵,選擇“添加裝載器”,系統(tǒng)默認就會添加ProjectInstaller.cs這個類。

5、添加該類后,在該類的設(shè)計視圖上可看到serviceInstaller1和serviceProcessInstaller1,分別設(shè)置其屬性。

設(shè)置serviceInstaller1的運行方式為手動或者自動

設(shè)置serviceInstaller1的ServiceName,設(shè)置為什么,服務(wù)列表中就顯示什么

設(shè)置serviceProcessInstaller1的運行賬號為LocalSystem

6、編譯該工程

7、使用vs自帶的命令行工具,運行installutil 編譯生成的exe

8、在系統(tǒng)的服務(wù)中可看到我們創(chuàng)建的服務(wù)。

需要注意的是:

如果你修改了這個服務(wù),路徑?jīng)]有變化的話是不需要重新注冊服務(wù)的,如果路徑發(fā)生了變化,需要先卸載這個服務(wù)InstallUtil.exe /u參數(shù),然后再重新安裝這個服務(wù),不能直接安裝。還有就是C# Windows服務(wù)是沒有界面的,不要企圖用控制的輸出方式來輸出一些信息,你只能添加一個EventLog,通過WriteEntry()來寫日志。


分享名稱:如何編寫C#Windows服務(wù)
網(wǎng)頁地址:http://www.5511xx.com/article/cochcoh.html