麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Windows服務調試小結(附Demo)

2019-11-17 02:43:23
字體:
來源:轉載
供稿:網友

Windows服務調試小結(附Demo)

本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,并給出原文鏈接,謝謝合作。

閱讀目錄

  • 介紹
  • 搭建環境
  • 調試方式
  • Demo下載

本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,并給出原文鏈接,謝謝合作。

介紹

  有時候不可避免的要建些Windows服務。既然寫代碼,就需要調試,由于這個東西搞的人不多,每個人調試的方法也不全,所以在下在這里小結一下調試方法。

搭建環境

一:創建一個Window Service

  文件->新建項目->Windows 服務。

  然后我們直接運行試試,然后提示如下:

  好吧,我們就依他的意思,加個服務安裝程序和些相關的引用及其他,結果如下:

  

  這樣我們的環境就基本搭建好了,然后就是服務的安裝,運行bin/Debug/Install/install.bat即可。

調試方式

一:普通調試

  msdn上指出“必須從服務控制管理器的上下文中而不是 Visual Studio 中運行服務。因此,調試服務不像調試其他 Visual Studio 應用程序類型一樣簡單。要調試服務,必須啟動該服務,然后將調試器附加到該服務正在其中運行的進程中。然后你可以使用所有 Visual Studio 的標準調試功能來調試你的應用程序”。

  所以我們啟動服務,然后通過vs附件該服務進程,然后就可以調試了。如下:

二:特殊調試

  如果我們不想創建服務就想調試代碼,其實可以采用其他的替代方式進行,只不過要改代碼。

  我們找到程序的入口:PRogram.cs。

  原代碼如下:

 1     static class Program 2     { 3         /// <summary> 4         /// 應用程序的主入口點。 5         /// </summary> 6         static void Main() 7         { 8             ServiceBase[] ServicesToRun; 9             ServicesToRun = new ServiceBase[] 10             { 11                 new ServiceDebug() 12             };13             ServiceBase.Run(ServicesToRun);14         }15     }

  修改后代碼如下:

 1         protected override void OnStart(string[] args) 2         { 3             Timer timer = new Timer(); 4             timer.Interval = 1000; 5             timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); 6             timer.Start(); 7  8         } 9 10         private void timer_Elapsed(object sender, ElapsedEventArgs e)11         {12 13         }14 15         protected override void OnStop()16         {17         }18 19         public void Test(string[] args)20         {21             OnStart(args);22         }
 1     static class Program 2     { 3         /// <summary> 4         /// 應用程序的主入口點。 5         /// </summary> 6         static void Main() 7         { 8             ServiceDebug service = new ServiceDebug(); 9             service.Test(null);10 11             while (true)12             {13                 System.Threading.Thread.Sleep(1000);14             }15             return;16 17             ServiceBase[] ServicesToRun;18             ServicesToRun = new ServiceBase[] 19             { 20                 new ServiceDebug() 21             };22             ServiceBase.Run(ServicesToRun);23         }24     }

  這樣,我們就可以進行調試了。

二:OnStart常規調試

  有時候我們想正常的調試Onstart方法,但是,啟動服務后這個方法已經運行了,那么我們應該怎么調試捏。

  我們可以在Onstart方法體前面加個Debugger.Launch();就可以很愉快的調試了。如下:

 1         protected override void OnStart(string[] args) 2         { 3             Debugger.Launch(); 4  5             Timer timer = new Timer(); 6             timer.Interval = 1000; 7             timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); 8             timer.Start(); 9 10         }

  啟動服務后彈出如下:,然后選中對應的解決方案即可。

Demo下載

源碼下載

本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,并給出原文鏈接,謝謝合作。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色吧久久| 一级在线免费观看视频 | 蝌蚪久久窝| 嗯哈~不行好大h双性 | 日本特级a一片免费观看 | 中文字幕国产欧美 | 国产精品一区二区x88av | 日韩黄色在线播放 | 亚洲电影在线播放 | 极色品影院 | 成人福利视频在 | 特大黑人videos与另类娇小 | 国产精品久久久久久影视 | 亚洲天堂午夜 | 精品国产一区二区在线 | 一级在线观看视频 | 激情久久一区二区 | 精品久久久久久久久久久久 | 国产色爱综合网 | 亚洲第五色综合网 | 日韩美香港a一级毛片 | 国产精品jk白丝蜜臀av软件 | 精品久久久久久久久久久aⅴ | 综合网日日天干夜夜久久 | 成人在线视频黄色 | 国产毛片毛片毛片 | 久久精品视频16 | 免费成人 | 日本xxxx色视频在线观看免费, | 欧美国产成人在线 | 91九色福利 | 爱操av | 久久久久久久久浪潮精品 | 国产亚洲精品久久久久久久 | 特级西西444www大精品视频免费看 | 免费一级毛片在线播放视频老 | hdhdhd79xxxxх | 欧美77 | 久久免费视频一区二区三区 | 久久第四色| 色柚视频网站ww色 |