windows服務定時任務


   其實定時任務時不時會碰到,只不過解決方案也不是只有一個,網上也有很多文章,但是沒有一篇說得很清楚,尤其是安裝環節,今天就着重說一下安裝,

其他步驟帶過,C#開發windows服務,開發,安裝,調試

1. 添加安裝程序  (找的其他博客的配圖)

C# <wbr>windows服務的創建與調試

C# <wbr>windows服務的創建與調試

 

之后我們可以看到上圖,自動為我們創建了ProjectInstaller.cs以及2個安裝的組件。

2)修改安裝服務名

右鍵serviceInsraller1,選擇屬性,將ServiceName的值改為ServiceTest。

 C# <wbr>windows服務的創建與調試

3)修改安裝權限

右鍵serviceProcessInsraller1,選擇屬性,將Account的值改為LocalSystem。

 C# <wbr>windows服務的創建與調試

 

2.業務代碼(讀取配置文件里面的所有節點,然后開啟多個定時任務)app.config配置如下:

 

protected override void OnStart(string[] args)
        {

             NameValueCollection urls = ConfigurationManager.AppSettings;

            List<Timer>  timers = new List<Timer> ();
             int i =1;
             foreach (var item in urls)
             {
                 try
                 {
                     string values = urls["url" + i];
                     string[] strs = values.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                     string url = strs[0];
                     int interval = Convert.ToInt32(strs[1]);
                     Timer temp = new Timer();
                     temp.AutoReset = true;
                     temp.Interval = interval;
                     temp.Enabled = true;
                     temp.Elapsed += new ElapsedEventHandler((object sender, System.Timers.ElapsedEventArgs e) =>
                     {
                         try
                         {
                             Http.Get(url);
                         }
                         catch (Exception ex)
                         {
                             Log.LogResult(ex.StackTrace);
                         }

                     });
                     temp.Start();

                     timers.Add(temp);
                 }
                 catch (Exception ex)
                 {

                     Log.LogResult("創建timer失敗:"+ex.StackTrace);
                 }
                 i++;
             }
        }

 3. 安裝

   如果項目是4.0的,那么要去  C:\Windows\Microsoft.NET\Framework\v4.0.30319    (V4.0開頭的就行) 路徑下面找到 InstallUtil.exe

  項目如果是2.0的,那么找 C:\Windows\Microsoft.NET\Framework\v2.0.50727  (v2.0 開頭就行)  路徑下面找到 InstallUtil.exe

   要將服務安裝到哪台機就要去哪台機里面找,沒有框架就裝框架,如果復制本地的文件到遠程服務器使用是不行的,微軟有安全驗證

 將文件installUtil.exe 復制到  Debug目錄下面 

  准備工作做好,開始安裝: 以管理員身份打開cmd,然后進到Debug目錄里面,先試試installutil.exe 有沒有用

出現類似頁面就說明有用,

執行命令 installutil   serviceTest.exe(服務對應程序名稱debug下面的 .exe )

如果出現安裝成功字眼,並且沒有出現錯誤字眼,說明服務安裝成功

然后去服務里面找到這個服務

4.調試   (調試 => 附加到進程 )

windows服務無法直接運行調試,跟着步驟來: 啟動服務才能附加進程調試

如果勾都打上了還找不到,就關閉這個窗口稍微等等再來一次,准能找到

然后就可以愉快的加斷點調試了

如果改了代碼,需要先停止服務 ,然后重新生成項目,再啟動,然后重新附加進程

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM