隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827218
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

          轉自:http://www.csharpwin.com/csharpspace/5575r154.shtml

          1、新建C# Windows服務:windows service工程

          新建windows service工程

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

          設計視圖 

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

          1. public WindowsServiceDemo()   
          2.         {   
          3.             InitializeComponent();   
          4.             System.Timers.Timer t = new System.Timers.Timer(1000);//實例化Timer類,設置間隔時間為10000毫秒;    
          5.             t.Elapsed += new System.Timers.ElapsedEventHandler(TimeElapse);//到達時間的時候執行事件;    
          6.             t.AutoReset = true;//設置是執行一次(false)還是一直執行(true);    
          7.             t.Enabled = true;//是否執行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 = "我的應用程序";   
          15.             //log.WriteEntry("1秒調用一次", 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、服務編寫之后,還不能由SCM(服務控制管理器)進行管理,需要給該服務添加裝載器。在Service1.cs的設計視圖,點擊右鍵,選擇“添加裝載器”,系統默認就會添加ProjectInstaller.cs這個類。

          Service1.cs的設計視圖  

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

              設置serviceInstaller1的運行方式為手動或者自動

              設置serviceInstaller1的ServiceName,設置為什么,服務列表中就顯示什么

              設置serviceProcessInstaller1的運行賬號為LocalSystem

              6、編譯該工程

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

              8、在系統的服務中可看到我們創建的服務。

              需要注意的是:

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



          posted on 2012-10-30 15:37 Ke 閱讀(460) 評論(0)  編輯  收藏 所屬分類: C#
          主站蜘蛛池模板: 洛川县| 湘阴县| 大石桥市| 弥勒县| 旌德县| 措美县| 文化| 内黄县| 潢川县| 广元市| 双桥区| 方城县| 平顶山市| 井研县| 池州市| 沙田区| 澳门| 榕江县| 饶阳县| 临海市| 新巴尔虎右旗| 华安县| 昌图县| 榆中县| 原阳县| 宝坻区| 洪湖市| 阜康市| 济源市| 贺兰县| 南召县| 子长县| 阿克陶县| 乐平市| 东源县| 西乡县| 唐海县| 保德县| 西平县| 东宁县| 陈巴尔虎旗|