1. 程式人生 > >windows服務定時任務

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服務無法直接執行除錯,跟著步驟來: 啟動服務才能附加程序除錯

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

然後就可以愉快的加斷點除錯了

如果改了程式碼,需要先停止服務 ,然後重新生成專案,再啟動,然後重新附加程序