亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

.NET下開發Windows服務應用程序

2019-11-18 11:18:27
字體:
來源:轉載
供稿:網友

  Windows 服務應用程序介紹
  Microsoft Windows 服務(即,以前的 NT 服務)使您能夠創建在它們自己的 Windows 會話中可長時間運行的可執行應用程序。這些服務可以在計算機啟動時自動啟動,可以暫停和重新啟動而且不顯示任何用戶界面。這使服務非常適合在服務器上使用,或任何時候,為了不影響在同一臺計算機上工作的其他用戶,需要長時間運行功能時使用。還可以在不同于登錄用戶的特定用戶帳戶或默認計算機帳戶的安全上下文中運行服務。
  
  創建 Windows 服務
  當創建服務時,可以使用稱作 Windows 服務的 Visual Studio .NET 項目模板。此模板引用適當的類和命名空間、設置從服務基類的繼續并重寫您可能要重寫的幾種方法,從而自動為您完成大部分工作。
  若要創建功能性服務,必須至少:
  
  設置 ServiceName 屬性
  為服務應用程序創建必需的安裝程序。
  重寫 OnStart 和 OnStop 方法并為其指定代碼以自定義服務的行為方式。
  在將安裝程序添加到應用程序之后,下一步是創建安裝項目,該項目將安裝已編譯的項目文件并運行安裝服務所需的安裝程序。若要創建完整的安裝項目,您必須將服務項目的輸出添加到該安裝項目,然后添加自定義操作以安裝您的服務。
  
  創建一個 Windows 服務項目
  在“屬性”窗口中,設置服務的 ServiceName 屬性。 (注重  ServiceName 屬性的值必須始終與安裝程序類中記錄的名稱匹配。假如更改此屬性,還必須更新安裝程序類中的 ServiceName 屬性。)
  設置下列所有屬性以確定服務的工作機制。 屬性 設置
  CanStop True 表示服務將接受停止運行的請求;false 表示禁止服務停止。
  CanShutDown True 表示服務希望在運行它的計算機關閉時收到通知,以便能夠調用 OnShutDown 過程。
  CanPauseAndContinue True 表示服務將接受暫?;蚶^續運行的請求;false 表示禁止服務暫停和繼續。
  CanHandlePowerEvent True 表示該服務可以處理有關計算機電源狀態更改的通知;false 表示禁止服務得到有關這些更改的通知。
  AutoLog True 表示在服務執行操作時將信息項寫入應用程序的事件日志;false 表示禁用此功能。(注重  默認為 true。)
  
  注重  當 CanStop 或 CanPauseandContinue 設置為 false 時,服務控制治理器將禁用停止、暫停或繼續服務的相應菜單選項。
  
  訪問代碼編輯器,并為 OnStart 和 OnStop 過程填寫所需的處理。
  重寫其他所有要為其定義功能的方法。
  添加服務應用程序所必需的安裝程序。
  通過從“生成”菜單中選擇“生成解決方案”來生成項目。 (注重  不要通過按 F5 鍵來運行項目,不能以這種方式運行服務項目。)
  實例:
  新建一個名為MyService的Windows服務項目,將Service1.cs及代碼里的類名改為你想要的名字,我這里統一用MyService;
  using System.Threading;
  一個后臺服務線程,PRivate Thread backThread=null;
  在構造函數里實例化線程,this.backThread=new Thread(new ThreadStart(this.Running));
  在類里添加private void Running(){}方法,一般要讓線程一直處于運行狀態來處理你給它安排的工作,例如根據消息隊列里的消息,執行下載任務下載文件。
  private void Running()
  {
  while(true)
  {
  //你的處理
  Thread.Sleep(5*1000);//例如讓線程休眠5秒
  }
  }
  重寫線程的控制函數
  protected override void OnStart(string[] args)
  {
  this.backThread.Start();
  }
  protected override void OnStop()
  {
  this.backThread.Abort();
  }
  protected override void OnPause()
  {
  this.backThread.Suspend();
  }
  protected override void OnContinue()
  {
  this.backThread.Resume();
  }
  同時你也可以根據需要按照上面表格所列的屬性進行設置。
  
  在該項目上點右鍵選擇添加-添加類-安裝程序類,取名Install.cs
  在Install.cs的視圖設計器里為它添加ServiceInstall和ServiceProcessInstall控件,可以為這2個控件設置屬性,例如可以在ServiceInstall的ServiceDependedOn屬性里設置服務依靠。
  
  生成解決方案,下面介紹如何安裝服務
  
  安裝和卸載服務
  手動安裝服務
  
  訪問項目中的已編譯可執行文件所在的目錄。
  用項目的輸出作為參數,從命令行運行 InstallUtil.exe。在命令行中輸入下列代碼:
  installutil yourproject.exe
  手動卸載服務
  
  用項目的輸出作為參數,從命令行運行 InstallUtil.exe。在命令行中輸入下列代碼:
  installutil /u yourproject.exe
  
  調試 Windows 服務應用程序
  由于服務必須從服務控制治理器的上下文中運行,而不是從 Visual Studio .NET 中運行,因此調試服務不像調試其他 Visual Studio 應用程序類型那樣簡單。若要調試服務,必須首先啟動服務,然后將一個調試器附加到正在運行服務的進程中。然后可以使用 Visual Studio 的所有標準調試功能來調試應用程序。
  
  警告  除非知道進程是什么,并且知道附加到進程或可能會取消進程所帶來的后果,否則不要附加到進程。例如,假如附加到 WinLogon 進程,然后停止調試,系統就會暫停,因為沒有 WinLogon,系統無法運行。
  
  只能將調試器附加到正在運行的服務。附加進程會中斷服務的當前運行;它并不真正終止或暫停服務的處理。也就是說,假如開始調試時服務正在運行,則在進行調試時,該服務從技術上說仍處于“已啟動”狀態,但它的處理已掛起。
  
  附加到服務的進程使您能夠調試大多數服務代碼,但并非全部;例如,由于服務已經啟動,因此不能用這種方法調試服務的 OnStart 方法中的代碼,或調試用于加載服務的 Main 方法中的代碼。解決此問題的一個方法是:在唯一作用是幫助調試的服務應用程序中創建一個臨時服務。可以將兩個服務都安裝上,然后啟動此“虛擬”服務加載服務進程。臨時服務啟動了進程后,就可以使用 Visual Studio .NET 中的“調試”菜單來附加到服務進程。
  
  當附加該進程之后,可以設置斷點并使用這些斷點來調試代碼。當退出用于附加到該進程的對話框時,實際上已處于調試模式。您可以使用服務控制治理器開始、停止、暫停和繼續您的服務,因此命中已設置的斷點。調試成功后,移除此“虛擬”服務。
  
  注重  調試 OnStart 方法可能比較困難,因為 Windows 服務治理器將所有嘗試啟動服務的時間限制在 30 秒內。當調試 Windows 服務應用程序時,服務與“Windows 服務治理器”進行交互。“服務治理器”通過調用 OnStart 方法啟動服務,然后花 30 秒時間等待 OnStart 方法返回。假如在這段時間內方法沒有返回,治理器將顯示一個服務無法啟動的錯誤。假如在 OnStart 方法中放置一個斷點并且在 30 秒內不通過該斷點,則治理器不會啟動服務。
  
  調試服務
  安裝您的服務。
  可從服務控制治理器、“服務器資源治理器”或代碼啟動服務。
  在 Visual Studio 中,從“調試”菜單中選擇“進程”。 出現“進程”對話框。
  單擊“顯示系統進程”。
  在“可用進程”區域內單擊服務的進程,然后單擊“附加”。 (提示  此進程將與服務的可執行文件同名。)出現“附加到進程”對話框。
  選擇任意適當選項,然后單擊“確定”關閉對話框。 (注重  您現在已處于調試模式。)
  設置要在代碼中使用的任意斷點。
  訪問服務控制治理器并操縱您的服務,并發送停止、暫停和繼續命令以命中您的斷點。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品久久国产性色也91| 日本精品在线视频| 91精品国产99久久久久久| 日韩精品在线影院| 国产精品www色诱视频| 伊人亚洲福利一区二区三区| 韩国一区二区电影| 亚洲缚视频在线观看| 日本一区二三区好的精华液| 成人福利在线视频| 高潮白浆女日韩av免费看| 日韩av中文字幕在线播放| 欧美精品一二区| 日韩电影在线观看免费| 日韩电影中文字幕在线观看| 亚洲天堂男人的天堂| 国产激情999| 国产乱人伦真实精品视频| 精品国产依人香蕉在线精品| 国产一区二区三区中文| 97超级碰碰人国产在线观看| 亚洲男人天堂手机在线| 一区二区三区四区视频| 欧美电影在线观看完整版| 日本sm极度另类视频| 国产女人18毛片水18精品| 欧美国产中文字幕| 成人免费在线网址| 国产精品美女久久久免费| 国内精品中文字幕| 亚洲激情 国产| 久久综合久久美利坚合众国| 久久久久久亚洲精品不卡| 日av在线播放中文不卡| 久久久国产精品视频| 日本精品一区二区三区在线播放视频| 91超碰中文字幕久久精品| 久久久久久一区二区三区| 亚洲一级黄色av| 欧美日韩国产丝袜美女| 一本大道久久加勒比香蕉| 热99精品里视频精品| 欧美日韩成人在线播放| 91精品视频播放| www.久久久久久.com| 97视频com| 欧美日韩一区二区免费在线观看| 亚洲电影免费观看高清完整版在线观看| 97不卡在线视频| 精品偷拍一区二区三区在线看| 精品久久久一区二区| 国产一区二区三区高清在线观看| 欧美与黑人午夜性猛交久久久| 欧美激情视频网站| 538国产精品视频一区二区| 成人www视频在线观看| 欧美另类高清videos| 欧美亚洲另类在线| 欧美精品在线观看| 91高清免费在线观看| 精品国产依人香蕉在线精品| 亚洲摸下面视频| 亚洲人成在线观| 69久久夜色精品国产69乱青草| 青青草一区二区| 57pao国产精品一区| 国产成人亚洲综合91精品| 中文字幕精品一区二区精品| 欧美成人一区二区三区电影| 综合136福利视频在线| 日韩不卡在线观看| 日韩美女视频中文字幕| 日韩成人在线观看| 欧美激情视频免费观看| 亚洲精品美女久久| 91精品一区二区| 亚洲已满18点击进入在线看片| 久久久在线免费观看| 久久精品在线视频| 欧美日韩国产丝袜另类| 亚洲精品国产精品自产a区红杏吧| 国产亚洲美女精品久久久| 国产亚洲xxx| www国产亚洲精品久久网站| 91精品国产99| 最好看的2019的中文字幕视频| 青青久久av北条麻妃黑人| 午夜精品久久久99热福利| 91精品久久久久久久久青青| 日本电影亚洲天堂| 国产欧美在线播放| 国产日韩av在线| 亚洲欧美日韩精品久久亚洲区| 国模精品视频一区二区| 永久免费毛片在线播放不卡| 国产日本欧美一区二区三区| 国产精品久久久久av免费| 日韩国产精品一区| 久久成人亚洲精品| 黑丝美女久久久| 欧美综合激情网| 欧美一级黑人aaaaaaa做受| 日韩精品极品毛片系列视频| 亚洲成人1234| 久久精品一偷一偷国产| 久久99精品久久久久久琪琪| 91精品国产777在线观看| 欧美激情aaaa| 久久精品夜夜夜夜夜久久| 久久久久成人精品| 亚洲综合中文字幕在线| 欧美成人精品影院| 欧美裸身视频免费观看| 日韩av影院在线观看| 26uuu亚洲国产精品| 亚洲日韩第一页| 综合av色偷偷网| 91国产美女视频| 欧美日韩国产91| 欧美xxxx做受欧美.88| 亚洲精品成人av| 午夜欧美不卡精品aaaaa| 国产精品欧美久久久| 日韩精品免费电影| 欧美综合国产精品久久丁香| 91av视频导航| 亚洲精品在线视频| 国产日本欧美视频| 亚洲毛茸茸少妇高潮呻吟| 中文字幕亚洲一区在线观看| 日韩黄色高清视频| 最新91在线视频| 九九久久综合网站| 正在播放国产一区| 久久精品2019中文字幕| 高潮白浆女日韩av免费看| 亚洲欧美日韩精品久久亚洲区| 成人国产在线激情| 国语自产精品视频在线看抢先版图片| 国产欧美日韩丝袜精品一区| 国产玖玖精品视频| 国产91精品网站| 亚洲精品国产精品国自产观看浪潮| 色视频www在线播放国产成人| 另类专区欧美制服同性| 麻豆乱码国产一区二区三区| 57pao成人国产永久免费| 久久亚洲精品成人| www.美女亚洲精品| 国产精品免费视频xxxx| 国产成人拍精品视频午夜网站| 2019亚洲日韩新视频| 欧美在线视频观看免费网站| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲第一偷拍网| 少妇高潮 亚洲精品| 亚洲18私人小影院| 中文字幕日韩在线观看| 亚洲精品欧美极品| 亚洲日本aⅴ片在线观看香蕉| 91日本在线视频| 伊人久久男人天堂| 国产精品观看在线亚洲人成网| 久久成人综合视频|