<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 828831
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

    轉(zhuǎn)自:http://www.csharpwin.com/csharpspace/5575r154.shtml

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

    新建windows service工程

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

    設(shè)計(jì)視圖 

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

    1. public WindowsServiceDemo()   
    2.         {   
    3.             InitializeComponent();   
    4.             System.Timers.Timer t = new System.Timers.Timer(1000);//實(shí)例化Timer類,設(shè)置間隔時(shí)間為10000毫秒;    
    5.             t.Elapsed += new System.Timers.ElapsedEventHandler(TimeElapse);//到達(dá)時(shí)間的時(shí)候執(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ù)控制管理器)進(jìn)行管理,需要給該服務(wù)添加裝載器。在Service1.cs的設(shè)計(jì)視圖,點(diǎn)擊右鍵,選擇“添加裝載器”,系統(tǒng)默認(rèn)就會(huì)添加ProjectInstaller.cs這個(gè)類。

    Service1.cs的設(shè)計(jì)視圖  

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

        設(shè)置serviceInstaller1的運(yùn)行方式為手動(dòng)或者自動(dòng)

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

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

        6、編譯該工程

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

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

        需要注意的是:

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



    posted on 2012-10-30 15:37 Ke 閱讀(466) 評論(0)  編輯  收藏 所屬分類: C#
    主站蜘蛛池模板: 亚洲精品中文字幕乱码三区| 亚洲精华液一二三产区| 四虎永久免费网站免费观看| 最近免费最新高清中文字幕韩国 | 国产精品久久久久久久久久免费| 99免费在线视频| 久久亚洲色WWW成人欧美| 亚洲国产美女在线观看 | 亚洲AV无码一区二区三区性色| 亚洲AV无码久久精品蜜桃| 亚洲国产天堂久久综合| 成人午夜免费福利| 91麻豆最新在线人成免费观看 | JLZZJLZZ亚洲乱熟无码| 国产美女做a免费视频软件| 在人线av无码免费高潮喷水| 青青草无码免费一二三区| 中国国产高清免费av片| 免费夜色污私人影院网站| 精品亚洲视频在线| 亚洲精品无码中文久久字幕| 久久精品国产亚洲αv忘忧草| 亚洲美免无码中文字幕在线| 久久精品国产亚洲沈樵| 亚洲日本va中文字幕久久| 亚洲国产日韩成人综合天堂| 亚洲А∨精品天堂在线| 亚洲 国产 图片| 亚洲 无码 在线 专区| 亚洲国产精品人人做人人爱| 免费一级肉体全黄毛片| 男人的天堂亚洲一区二区三区| 性盈盈影院免费视频观看在线一区| 黄网站色在线视频免费观看| 91免费国产精品| 中国人xxxxx69免费视频| 亚洲毛片在线免费观看| 黄在线观看www免费看| 天天看免费高清影视| 国产小视频在线观看免费| 亚洲Av无码乱码在线观看性色|