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