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

創(chuàng)新互聯(lián)建站致力于做網(wǎng)站、網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過(guò)標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián)建站,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
2、新建windows service工程后,系統(tǒng)自動(dòng)生成一個(gè)Service1.cs文件,默認(rèn)是其設(shè)計(jì)視圖。選擇查看其代碼,默認(rèn)有構(gòu)造函數(shù)、OnStart、OnStop三個(gè)函數(shù),如下圖所示:
3、新建了C# Windows服務(wù)之后,還要設(shè)置該服務(wù)運(yùn)行的周期,左側(cè)的ToolBox中有兩個(gè)timmer,一個(gè)在組件下,一個(gè)在windows form下,可惜這兩個(gè)都不能用,我們要手工新建一個(gè)timmer,并設(shè)置其屬性和事件。
- public WindowsServiceDemo()
- {
- InitializeComponent();
- System.Timers.Timer t = new System.Timers.Timer(1000);//實(shí)例化Timer類,設(shè)置間隔時(shí)間為10000毫秒;
- t.Elapsed += new System.Timers.ElapsedEventHandler(TimeElapse);//到達(dá)時(shí)間的時(shí)候執(zhí)行事件;
- t.AutoReset = true;//設(shè)置是執(zhí)行一次(false)還是一直執(zhí)行(true);
- t.Enabled = true;//是否執(zhí)行System.Timers.Timer.Elapsed事件;
- }
- public void TimeElapse(object source, System.Timers.ElapsedEventArgs e)
- {
- //EventLog log = new EventLog();
- //log.Source = "我的應(yīng)用程序";
- //log.WriteEntry("1秒調(diào)用一次", EventLogEntryType.Information);
- FileStream fs = new FileStream(@"d:\timetick.txt", FileMode.OpenOrCreate, FileAccess.Write);
- StreamWriter m_streamWriter = new StreamWriter(fs);
- m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
- m_streamWriter.WriteLine("過(guò)了一秒 " + DateTime.Now.ToString() + "\n");
- m_streamWriter.Flush();
- m_streamWriter.Close();
- fs.Close();
- }
4、服務(wù)編寫(xiě)之后,還不能由SCM(服務(wù)控制管理器)進(jìn)行管理,需要給該服務(wù)添加裝載器。在Service1.cs的設(shè)計(jì)視圖,點(diǎn)擊右鍵,選擇“添加裝載器”,系統(tǒng)默認(rèn)就會(huì)添加ProjectInstaller.cs這個(gè)類。
5、添加該類后,在該類的設(shè)計(jì)視圖上可看到serviceInstaller1和serviceProcessInstaller1,分別設(shè)置其屬性。
設(shè)置serviceInstaller1的運(yùn)行方式為手動(dòng)或者自動(dòng)
設(shè)置serviceInstaller1的ServiceName,設(shè)置為什么,服務(wù)列表中就顯示什么
設(shè)置serviceProcessInstaller1的運(yùn)行賬號(hào)為L(zhǎng)ocalSystem
6、編譯該工程
7、使用vs自帶的命令行工具,運(yùn)行installutil 編譯生成的exe
8、在系統(tǒng)的服務(wù)中可看到我們創(chuàng)建的服務(wù)。
需要注意的是:
如果你修改了這個(gè)服務(wù),路徑?jīng)]有變化的話是不需要重新注冊(cè)服務(wù)的,如果路徑發(fā)生了變化,需要先卸載這個(gè)服務(wù)InstallUtil.exe /u參數(shù),然后再重新安裝這個(gè)服務(wù),不能直接安裝。還有就是C# Windows服務(wù)是沒(méi)有界面的,不要企圖用控制的輸出方式來(lái)輸出一些信息,你只能添加一個(gè)EventLog,通過(guò)WriteEntry()來(lái)寫(xiě)日志。
當(dāng)前名稱:如何編寫(xiě)C#Windows服務(wù)
路徑分享:http://m.fisionsoft.com.cn/article/cochcoh.html


咨詢
建站咨詢
