国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 延庆县| 嘉善县| 临沧市| 肇州县| 永寿县| 沈阳市| 越西县| 通道| 临漳县| 深圳市| 公主岭市| 安新县| 海丰县| 宜兰县| 泰来县| 喀喇沁旗| 平江县| 仁布县| 巩留县| 乐亭县| 合山市| 枞阳县| 东明县| 岳阳县| 普陀区| 普安县| 呼和浩特市| 武隆县| 杭锦后旗| 普宁市| 天等县| 枝江市| 保康县| 宝清县| 深水埗区| 岐山县| 葫芦岛市| 密云县| 轮台县| 云龙县| 河北省|