色偷偷91综合久久噜噜-色偷偷成人-色偷偷尼玛图亚洲综合-色偷偷人人澡久久天天-国内精品视频一区-国内精品视频一区二区三区

Hello! 歡迎來到小浪云!


使用Visual Studio 2015 Community 開發windows服務


在.net環境中開發windows服務程序的過程中,我遇到了一些小問題,現將開發過程和需要注意的事項分享給大家,希望對你們有所幫助。

1. 基礎知識

Windows服務是指能夠在系統啟動時自動運行的程序。這些服務可以在沒有用戶界面的情況下在后臺處理業務。

在.NET中開發Windows服務需要用到幾個基本的類,這些類位于System.ServiceProcess.dll和System.Configuration.Install.dll程序集中,包括:ServiceBase、ServiceInstaller、ServiceProcessInstaller和Installer。這些類是開發一個最簡單的Windows服務所必需的。

2. 使用visual studio 2015 Community創建Windows服務項目

使用Visual Studio 2015 Community 開發windows服務在“Classic Desktop(經典桌面程序)”中選擇“Windows Service”項目。項目的文件結構如下:

使用Visual Studio 2015 Community 開發windows服務雙擊Service1.cs進入服務設計界面,并設置ServiceName屬性(該屬性在后續會再次提到,請注意),該屬性是系統控制Windows服務的標識:

使用Visual Studio 2015 Community 開發windows服務我將ServiceName屬性設置為“Test”。大家可以看到屬性面板上方,這里設置的是ServiceBase類的屬性。ServiceBase類是.NET中創建所有Windows服務的基類。在創建新的服務類時,必須從ServiceBase類派生。

接下來查看Service1.cs文件的代碼部分,可以看到里面有一個Service1類繼承自ServiceBase類,并包含兩個重寫方法:OnStart和OnStop。OnStart中的代碼將在服務啟動后運行,OnStop中的代碼在服務停止時運行。此外還有OnPause、OnContinue等方法。編譯項目后會在binDebug文件夾下生成WindowsService1.exe文件,這就是我們創建的Windows服務。是不是覺得很簡單?但如果你以為Windows服務的創建工作到此結束,那就錯了。嘗試雙擊WindowsService1.exe運行看看……

3. Windows服務的安裝

你會發現,提示我們要先安裝服務才能運行:

使用Visual Studio 2015 Community 開發windows服務提示信息中提到了installutil.exe,但我們先不討論它的用途。要安裝剛剛創建的Windows服務,首先需要在項目中創建安裝文件,如圖所示:

使用Visual Studio 2015 Community 開發windows服務雙擊剛剛創建的Installer1.cs文件進入其設計界面,這里我們直接進入代碼界面,會看到里面有一個類:Installer1,它繼承自System.Configuration.Install命名空間下的Installer類,Installer類是.NET中所有自定義安裝程序的基類。

在Installer1的構造函數中,我們定義了服務進程安裝類(即上文提到的ServiceProcessInstaller)和服務安裝類(即上文提到的ServiceInstaller)的實例:

public Installer1() {     InitializeComponent();     ServiceProcessInstaller spi = new ServiceProcessInstaller();     spi.Account = ServiceAccount.LocalSystem; // 設置服務要運行在什么類型的賬號下     // 這里可以創建多個ServiceInstaller實例     ServiceInstaller si = new ServiceInstaller();     si.ServiceName = "Test"; // 系統操作服務的標識,要和ServiceBase中設置的ServiceName屬性值相同     si.DisplayName = "測試服務"; // 展示給用戶的服務名,即在控制面板中看到的服務名     si.Description = "服務的描述信息";     si.StartType = ServiceStartMode.Manual; // 服務的啟動方式,這里設置為手動     // 最后記得把創建的實例添加到安裝列表中     this.Installers.Add(si);     this.Installers.Add(spi); }

到此,安裝服務的基本信息已經填寫完畢。接下來我們需要重寫基類Installer中的兩個方法:

// 注意必須重寫Install和Uninstall方法,且在重寫方法中必須調用基類對應的方法,否則在安裝和卸載服務的過程中會出問題 // 小編就是因為沒有調用基類中的方法導致安裝和卸載出現問題 // 除此之外還有Commit、Rollback等方法 public override void Install(IDictionary stateSaver) {     base.Install(stateSaver); } public override void Uninstall(IDictionary savedState) {     base.Uninstall(savedState); }

使用Visual Studio 2015 Community 開發windows服務在這里要注意一點,在Installer1類上使用了特性:RunInstaller(true),如果我們將特性的參數設為false,那么安裝工具installutil將會忽略該類,我們在安裝服務時就不會安裝該類中指定的服務。

完成上述步驟后,我們再次編譯項目……

在上文中我們提到了installutil.exe工具,它是用來安裝.NET編寫的Windows服務的工具,路徑是C:Windowsmicrosoft.NETFrameworkv4.0.30319InstallUtil.exe。其中v4.0.30319是.NET的版本號,使用不同版本的.NET編寫Windows服務需要使用對應的installutil.exe來安裝。

我們打開命令行或使用VS自帶的命令行工具,這里我們使用VS自帶的命令行工具:Developer Command prompt for VS2015來進行安裝工作。

打開命令行工具,輸入:installutil.exe Windows服務程序的路徑(這里小編涂去了和個人信息相關的部分)然后回車

使用Visual Studio 2015 Community 開發windows服務如果使用系統的命令行工具,就需要先跳轉到installutil.exe所在的路徑或者在命令行中指明它的路徑。

回車之后會發現,Windows服務開始安裝了,然后就會發現安裝出現了問題……

使用Visual Studio 2015 Community 開發windows服務解決這個問題的辦法非常簡單,就是以管理員身份運行命令行工具即可(小編卻花費了很長的時間才悟出這個道理)。

以管理員身份運行命令行,再次執行安裝過程,我們可以看到安裝過程分為:安裝和提交兩步。

安裝完成之后,我們可以在控制面板的服務管理器中看到剛剛安裝的服務:

使用Visual Studio 2015 Community 開發windows服務安裝完成后我們來啟動服務,這里使用命令行來啟動,也可以在服務管理器中啟動。

使用Visual Studio 2015 Community 開發windows服務大家注意到沒有?控制面板服務管理器中顯示的服務名稱是DisplayName屬性指定的名稱,而我們啟動服務時要使用ServiceName屬性指定的服務名,否則會提示我們服務名無效。

服務的停止使用命令:net stop 服務名稱。

服務的卸載使用installutil /u 服務程序路徑來完成。

至此,在.NET中開發一個簡單的Windows服務的工作已經全部完成……

版權聲明

本文為作者原創,版權歸作者雪飛鴻所有。轉載必須保留文章的完整性,且在頁面明顯位置處標明原文鏈接。

如有問題,請發送郵件與作者聯系。

以上就是使用Visual Studio 2015 Community 開發

相關閱讀

主站蜘蛛池模板: 天天操天天干天天玩 | 直接在线观看的三级网址 | 美女动作一级毛片 | 日日干夜夜操视频 | 日韩美三级 | 天天天天添天天拍天天谢 | 97视频免费观看2区 97视频资源 | 欧美a级影院 | 亚洲sss综合天堂久久久 | 久久久黄色 | 一级黄色录像免费看 | 成人 亚洲 成人影院 | 亚洲va久久久噜噜噜久久天堂 | 综合天天色 | 国产色综合网 | 国产国产人免费人成免费视频 | 日本不卡一区二区三区在线观看 | 国产三级小视频在线观看 | 亚洲精品美女久久久 | 性色在线视频精品 | 成年女人毛片免费观看97 | 国产一二三区在线观看 | 手机看片日韩国产一区二区 | 青草久久精品亚洲综合专区 | 99久久精品国产高清一区二区 | 亚洲国产精品自产在线播放 | 国产一区二区三区免费视频 | 开心婷婷网 | 久久天天 | 亚洲欧美综合网站 | 精品免费tv久久久久久久 | 黄色在线视频免费看 | 亚洲精品资源 | 黄色国产免费观看 | 夜夜摸天天操 | 日韩精品中文字幕一区二区三区 | 一级免费黄色毛片 | 日韩欧美不卡片 | 91久久精品国产免费一区 | 国产毛片在线视频 | 三级黄色在线免费观看 |