国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#對(duì)Windows服務(wù)組的啟動(dòng)與停止操作

2019-10-29 21:03:21
字體:
供稿:網(wǎng)友

Windows服務(wù)大家都不陌生,Windows服務(wù)組的概念,貌似MS并沒有這個(gè)說法。

作為一名軟件開發(fā)者,我們的機(jī)器上安裝有各種開發(fā)工具,伴隨著各種相關(guān)服務(wù)。

Visual Studio可以不打開,SqlServer Management Studio可以不打開,但是SqlServer服務(wù)卻默認(rèn)開啟了。下班后,我的計(jì)算機(jī)想用于生活、娛樂,不需要數(shù)據(jù)庫服務(wù)這些東西,尤其是在安裝了Oracle數(shù)據(jù)庫后,我感覺機(jī)器吃力的很。

每次開機(jī)后去依次關(guān)閉服務(wù),或者設(shè)置手動(dòng)開啟模式,每次工作使用時(shí)依次去開啟服務(wù),都是一件很麻煩的事情。因此,我講這些相關(guān)服務(wù)進(jìn)行打包,打包為一個(gè)服務(wù)組的概念,并通過程序來實(shí)現(xiàn)服務(wù)的啟動(dòng)和停止。

這樣我就可以設(shè)置SqlServer、Oracle、Vmware等的服務(wù)為手動(dòng)開啟,然后在需要的時(shí)候選擇打開。

以上廢話為工具編寫背景,也是一個(gè)應(yīng)用場景描述,下邊附上代碼。

C#,Windows服務(wù)組,Windows服務(wù)組啟動(dòng),Windows服務(wù)組停止

服務(wù)組的定義,我使用了INI配置文件,一個(gè)配置節(jié)為一個(gè)服務(wù)器組,配置節(jié)內(nèi)的Key、Value為服務(wù)描述和服務(wù)名稱。

配置內(nèi)容的先后決定了服務(wù)開啟的順序,因此類似Oracle這樣的對(duì)于服務(wù)開啟先后順序有要求的,要定義好服務(wù)組內(nèi)的先后順序。

Value值為服務(wù)名稱,服務(wù)名稱并非services.msc查看的名稱欄位的值,右鍵服務(wù),可以看到,顯示的名稱其實(shí)是服務(wù)的顯示名稱,這里需要的是服務(wù)名稱。

C#,Windows服務(wù)組,Windows服務(wù)組啟動(dòng),Windows服務(wù)組停止

配置文件如下圖所示

C#,Windows服務(wù)組,Windows服務(wù)組啟動(dòng),Windows服務(wù)組停止

注:INI文件格式:

[Section1]

key1=value1

key2=value2

程序啟動(dòng),主窗體加載,獲取配置節(jié),即服務(wù)組。

string path = Directory.GetCurrentDirectory() + "/config.ini"; List<string> serviceGroups = INIHelper.GetAllSectionNames(path); cboServiceGroup.DataSource = serviceGroups;

其中的INI服務(wù)類,參考鏈接:C#操作INI文件的輔助類IniHelper

服務(wù)的啟動(dòng)和停止,需要引入System.ServiceProcess程序集。

啟動(dòng)服務(wù)組:

if (string.IsNullOrEmpty(cboServiceGroup.Text)){ MessageBox.Show("請(qǐng)選擇要操作的服務(wù)組"); return;}//string path = Directory.GetCurrentDirectory() + "/config.ini";string section = cboServiceGroup.Text;string[] keys;string[] values;INIHelper.GetAllKeyValues(section, out keys, out values, path);//foreach (string value in values){ ServiceController sc = new ServiceController(value); // try {  ServiceControllerStatus scs = sc.Status;  if (scs != ServiceControllerStatus.Running)  {   try   {    sc.Start();   }   catch (Exception ex)   {    MessageBox.Show("服務(wù)啟動(dòng)失敗/n" + ex.ToString());   }  } } catch (Exception ex) {  MessageBox.Show("不存在服務(wù)" + value); } // }//MessageBox.Show("服務(wù)啟動(dòng)完成");

停止服務(wù)組

if (string.IsNullOrEmpty(cboServiceGroup.Text)){ MessageBox.Show("請(qǐng)選擇要操作的服務(wù)組"); return;}//string path = Directory.GetCurrentDirectory() + "/config.ini";string section = cboServiceGroup.Text;string[] keys;string[] values;INIHelper.GetAllKeyValues(section, out keys, out values, path);//foreach (string value in values){ ServiceController sc = new ServiceController(value); try {  ServiceControllerStatus scs = sc.Status;  if (scs != ServiceControllerStatus.Stopped)  {   try   {    sc.Stop();   }   catch (Exception ex)   {    MessageBox.Show("服務(wù)停止失敗/n" + ex.ToString());   }  } } catch (Exception ex) {  MessageBox.Show("不存在服務(wù)" + value); } //}//MessageBox.Show("服務(wù)停止完成");}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到c#教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青田县| 泸州市| 博湖县| 赫章县| 恭城| 台北县| 通海县| 彝良县| 铜陵市| 荔波县| 五常市| 濉溪县| 长海县| 阿拉善盟| 武城县| 黎城县| 新乡市| 辉南县| 平谷区| 名山县| 新建县| 阿克| 四子王旗| 崇信县| 东港市| 浦城县| 墨玉县| 高台县| 潞西市| 郓城县| 凤阳县| 遵化市| 亚东县| 临澧县| 游戏| 区。| 青冈县| 丹江口市| 综艺| 永济市| 黄骅市|