<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C#創建Windows Service(Windows 服務)基礎教程

      Windows Service這一塊并不復雜,但是注意事項太多了,網上資料也很凌亂,偶爾自己寫也會丟三落四的。所以本文也就產生了,本文不會寫復雜的東西,完全以基礎應用的需求來寫,所以不會對Windows Service寫很深入。

      本文介紹了如何用C#創建、安裝、啟動、監控、卸載簡單的Windows Service 的內容步驟和注意事項。

      一、創建一個Windows Service

      1)創建Windows Service項目

      imageimage

      2)對Service重命名

      將Service1重命名為你服務名稱,這里我們命名為ServiceTest。

      二、創建服務安裝程序

      1)添加安裝程序

      image

      image

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

      2)修改安裝服務名

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

      image

      3)修改安裝權限

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

      image

      三、寫入服務代碼

      1)打開ServiceTest代碼

      右鍵ServiceTest,選擇查看代碼。

      2)寫入Service邏輯

      添加如下代碼:

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Diagnostics;
      using System.Linq;
      using System.ServiceProcess;
      using System.Text;
      
      namespace WindowsServiceTest
      {
      	public partial class ServiceTest : ServiceBase
      	{
      		public ServiceTest()
      		{
      			InitializeComponent();
      		}
      
      		protected override void OnStart(string[] args)
      		{
      			using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
      			{
      				sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Start.");
      			}
      		}
      
      		protected override void OnStop()
      		{
      			using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
      			{
      				sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Stop.");
      			}
      		}
      	}
      }
      

      這里我們的邏輯很簡單,啟動服務的時候寫個日志,關閉的時候再寫個日志。

      四、創建安裝腳本

      在項目中添加2個文件如下(必須是ANSI或者UTF-8無BOM格式):

      1)安裝腳本Install.bat

      %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe WindowsServiceTest.exe
      Net Start ServiceTest
      sc config ServiceTest start= auto

      2)卸載腳本Uninstall.bat

      %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u WindowsServiceTest.exe

      3)安裝腳本說明

      第二行為啟動服務。

      第三行為設置服務為自動運行。

      這2行視服務形式自行選擇。

      4)腳本調試

      如果需要查看腳本運行狀況,在腳本最后一行加入pause

      五、在C#中對服務進行控制

      0)配置目錄結構

      簡歷一個新WPF項目,叫WindowsServiceTestUI,添加對System.ServiceProcess的引用。

      在WindowsServiceTestUI的bin\Debug目錄下建立Service目錄。

      將WindowsServiceTest的生成目錄設置為上面創建的Service目錄。

      生成后目錄結構如下圖

      image

       

      1)安裝

      安裝時會產生目錄問題,所以安裝代碼如下:

      string CurrentDirectory = System.Environment.CurrentDirectory;
      System.Environment.CurrentDirectory = CurrentDirectory + "\\Service";
      Process process = new Process();
      process.StartInfo.UseShellExecute = false;
      process.StartInfo.FileName = "Install.bat";
      process.StartInfo.CreateNoWindow = true;
      process.Start();
      System.Environment.CurrentDirectory = CurrentDirectory;
      

      2)卸載

      卸載時也會產生目錄問題,所以卸載代碼如下:

      string CurrentDirectory = System.Environment.CurrentDirectory;
      System.Environment.CurrentDirectory = CurrentDirectory + "\\Service";
      Process process = new Process();
      process.StartInfo.UseShellExecute = false;
      process.StartInfo.FileName = "Uninstall.bat";
      process.StartInfo.CreateNoWindow = true;
      process.Start();
      System.Environment.CurrentDirectory = CurrentDirectory;
      

      3)啟動

      代碼如下:

      using System.ServiceProcess;
      
      
      ServiceController serviceController = new ServiceController("ServiceTest");
      serviceController.Start();

      4)停止

      ServiceController serviceController = new ServiceController("ServiceTest");
      if (serviceController.CanStop)
      	serviceController.Stop();
      

      5)暫停/繼續

      ServiceController serviceController = new ServiceController("ServiceTest");
      if (serviceController.CanPauseAndContinue)
      {
      	if (serviceController.Status == ServiceControllerStatus.Running)
      		serviceController.Pause();
      	else if (serviceController.Status == ServiceControllerStatus.Paused)
      		serviceController.Continue();
      }

      6)檢查狀態

      ServiceController serviceController = new ServiceController("ServiceTest");
      string Status = serviceController.Status.ToString();
      

      六、調試Windows Service

      1)安裝并運行服務

      2)附加進程

      imageimage

      3)在代碼中加入斷點進行調試

      image

      七、總結

      本文對Windows service的上述配置都未做詳細解釋,但是按上述步驟就可以制作可運行的Windows Service,從而達到了工作的需求。

      示例代碼請見:https://github.com/sorex/WindowsServiceTest

      posted @ 2012-05-16 09:51  ☆磊☆  閱讀(117190)  評論(46)    收藏  舉報
      主站蜘蛛池模板: 美女午夜福利视频一区二区 | 成年女人片免费视频播放A| 国产成人无码午夜视频在线观看| 国产办公室秘书无码精品99| 人人妻人人狠人人爽| 东京热人妻丝袜无码AV一二三区观| 青草青草视频2免费观看| 国产熟女一区二区三区蜜臀| 中文字幕有码无码AV| 国产日产欧产精品精品| 广东省| 亚洲中文字幕精品久久| 国产成人精品午夜在线观看| 久久精品国产99久久六动漫| 国产永久免费高清在线观看| 妺妺窝人体色www聚色窝仙踪| 久久婷婷丁香五月综合五| 久久精品国产蜜臀av| 自拍偷自拍亚洲一区二区| 狠狠亚洲色一日本高清色| 亚洲色最新高清AV网站| 久久天天躁夜夜躁狠狠85| 熟女国产精品一区二区三| 图片区偷拍区小说区五月| 少妇人妻偷人免费观看| 国产精品国产三级国产专i| 啦啦啦高清在线观看视频www| 亚洲国产精品日韩在线| 亚洲成av人最新无码不卡短片| 偷偷做久久久久免费网站| 老司机午夜精品视频资源| 亚洲老熟女乱女一区二区| 制服丝袜国产精品| 欧产日产国产精品精品| 高清在线一区二区三区视频| 国产一区二区三区不卡视频| 亚欧美闷骚院| 色吊a中文字幕一二三区| 欧美日韩不卡合集视频| 少妇人妻激情乱人伦| 欧美成人精品三级在线观看|