一個簡單的C# WINDOWS服務(wù)程序
今天在做個程序,寫一個通訊平臺,功能是一個TCP的通訊平臺,和應(yīng)用網(wǎng)關(guān)通訊,一邊是SQLSERVER的擴(kuò)展存儲過程,它從SQL庫中提出相應(yīng)的字段,通過UDP丟包給通訊平臺,平臺收到包后連應(yīng)用網(wǎng)關(guān),把數(shù)據(jù)包發(fā)過去并接收應(yīng)用網(wǎng)關(guān)的回執(zhí)。實(shí)現(xiàn)上準(zhǔn)備寫個windows服務(wù)程序,這樣即使機(jī)器重起了,不用登陸也可以運(yùn)行,不會影響到業(yè)務(wù)的正常運(yùn)行。
在做C# WINDOWS服務(wù)之前先熟悉一下C# WINDOWS服務(wù)程序在C#中的寫法。
1.在VS.NET2003中新建一個WINDOWS服務(wù)程序的項(xiàng)目WinSrv_A。
2.更改SERVICE1.CS屬性SERVICENAME為你所要建立的服務(wù)名稱,在服務(wù)管理器->名稱中你可以看到你的服務(wù)名
3.按F7進(jìn)入代碼窗口,里面有2個重載函數(shù)是你要在其中寫代碼的一個是
- //protected override void OnStart(string[] args)
- //{...} //這個函數(shù)是你啟動服務(wù)后執(zhí)行的函數(shù)
- //protected override void OnStop()
- //{...}//這個函數(shù)是你停止服務(wù)后執(zhí)行的函數(shù)
我這里簡單的做一個記錄啟動和終止服務(wù)的時間的功能。寫如日志文檔。
- protected override void OnStart(string[] args)
- {
- // TODO: 在此處添加代碼以啟動服務(wù)。
- String s = System.DateTime.Now.ToString();
- if(!File.Exists("c:\\srvlog.txt"))
- {
- StreamWriter sr = File.CreateText("c:\\bbbirdlog.txt");
- sr.WriteLine("-------------------------START SRV---------------------");
- sr.WriteLine ("我的新服務(wù)在{0}時間開始",s);
- sr.WriteLine ("我可以寫整型 {0} or 浮點(diǎn)型 {1},等等.",1, 4.2);
- sr.Close();
- }
- else
- {
- StreamWriter sr = File.AppendText("c:\\bbbirdlog.txt");
- sr.WriteLine("-------------------------START SRV---------------------");
- sr.WriteLine ("我的新服務(wù)在{0}時間開始",s);
- sr.WriteLine ("我可以寫整型 {0} or 浮點(diǎn)型 {1},等等.",1, 4.2);
- sr.Close();
- }
- }
- ///
- /// 停止此服務(wù)。
- ///
- protected override void OnStop()
- {
- // TODO: 在此處添加代碼以執(zhí)行停止服務(wù)所需的關(guān)閉操作。
- String s1 = System.DateTime.Now.ToString();
- if(!File.Exists("c:\\srvlog.txt"))
- {
- StreamWriter sr = File.CreateText("c:\\bbbirdlog.txt");
- sr.WriteLine("-------------------------STOP SRV---------------------");
- sr.WriteLine ("我的新服務(wù)在{0}時間停止",s1);
- sr.Close();
- }
- else
- {
- StreamWriter sr = File.AppendText("c:\\bbbirdlog.txt");
- sr.WriteLine("-------------------------STOP SRV---------------------");
- sr.WriteLine ("我的新服務(wù)在{0}時間停止",s1);
- sr.Close();
- }
- }
4.回到設(shè)計(jì)窗口點(diǎn)右鍵選擇添加安裝程序生成serviceInstaller1和serviceProcessInstaller1兩個組件
把serviceInstaller1的屬性ServiceName改寫為你的服務(wù)程序名,并把啟動模式設(shè)置為AUTOMATIC
把serviceProcessInstaller1的屬性account改寫為LocalSystem
5.編譯鏈接生成服務(wù)程序。
6.用.net framework工具INSTALLUTIL安裝服務(wù)程序即可。
這樣,就用C#寫了一個簡單的C# WINDOWS服務(wù)程序。【編輯推薦】