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

首頁(yè) > 服務(wù)器 > Win服務(wù)器 > 正文

c#創(chuàng)建windows服務(wù)圖解示例

2024-09-10 00:03:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

創(chuàng)建項(xiàng)目選擇Windows Service

創(chuàng)建好項(xiàng)目之后,在生成的Service1.cs的設(shè)計(jì)頁(yè)面右鍵選擇Add Installer,會(huì)生成一個(gè)ProjectInstaller.cs。這個(gè)文件中有兩個(gè)組件:serviceProcessInstaller和serviceInstaller。

對(duì)這兩個(gè)組件進(jìn)行設(shè)置:

serviceProcessInstaller設(shè)置屬性Account為L(zhǎng)ocalSystem,這樣創(chuàng)建服務(wù)的時(shí)候,不需要用戶(hù)名和密碼。

serviceInstaller1設(shè)置屬性ServiceName,Description和DisplayName。ServiceName代表服務(wù)名稱(chēng),Description代表服務(wù)的描述,DisplayName代表服務(wù)的顯示名稱(chēng)。還有另外兩個(gè)屬性DeplayedAutoStart配置成True,StartType配置成Automatic。

從下圖服務(wù)列表可以看出名稱(chēng)對(duì)應(yīng)DisplayName,描述對(duì)應(yīng)Description,啟動(dòng)類(lèi)型對(duì)應(yīng)StartType,登錄為對(duì)應(yīng)Account(serviceProcessInstaller)。

服務(wù)具體代碼的編寫(xiě)涉及到service.cs中的OnStart和OnStop兩個(gè)函數(shù):


復(fù)制代碼代碼如下:
protected override void OnStart(string[] args)
{
}</p><p>protected override void OnStop()
{
}


在服務(wù)函數(shù)完成、編譯成功之后,在生成的exe文件夾下放入兩個(gè)批處理文件:

安裝服務(wù):

C:/Windows/Microsoft.NET/Framework/v4.0.30319/InstallUtil.exe ServiceExample.exe

  Pause

卸載服務(wù):

C:/Windows/Microsoft.NET/Framework/v4.0.30319/InstallUtil.exe /u X5_Statistic.exe

C:/Windows/Microsoft.NET/Framework/v4.0.30319/InstallUtil.exe是由于程序用的是.net4.0的framework,后面的ServiceExample.exe不過(guò)是exe文件名。

需要注意這幾個(gè)事情:

1 StartType即使配置成Automatic,在首次安裝成功之后還是要在服務(wù)列表中找到并手工啟動(dòng)。(當(dāng)然,可以在OnStart函數(shù)中通過(guò)編碼實(shí)現(xiàn)安裝后自動(dòng)啟動(dòng))

2 在服務(wù)中處理,避免不了使用定時(shí)器,要注意這里不能使用Form命名空間下的Timer,因?yàn)榉?wù)不是窗體類(lèi)型的應(yīng)用,所以不能使用這個(gè)組件。要使用System.Timers下的Timer。

3 如果服務(wù)執(zhí)行異常,會(huì)導(dǎo)致服務(wù)啟動(dòng)失敗,提示是類(lèi)似“…服務(wù)啟動(dòng)后停止。某些服務(wù)在未由其他服務(wù)或程序使用時(shí)將自動(dòng)停止”的語(yǔ)句,這種情況下不容易查出毛病在哪,當(dāng)然可以通過(guò)attach to process來(lái)調(diào)試,不過(guò)我自己更習(xí)慣于在普通的form程序中通過(guò)按鈕模擬找出程序執(zhí)行異常的關(guān)鍵代碼,修改通過(guò)之后再移植到服務(wù)的代碼中再測(cè)試。

4 要獲取服務(wù)所在的目錄,請(qǐng)使用AppDomain.CurrentDomain.BaseDirectory這個(gè)只讀屬性。建議需要生成服務(wù)的執(zhí)行情況日志的,將日志文件放在服務(wù)所在的目錄下。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 杭锦后旗| 南郑县| 南投市| 黄浦区| 永登县| 离岛区| 荔浦县| 安吉县| 岳普湖县| 唐河县| 高台县| 潼关县| 青铜峡市| 黑山县| 敖汉旗| 丁青县| 阳春市| 莱阳市| 万全县| 修水县| 宜昌市| 临夏县| 营口市| 崇明县| 湖南省| 黎城县| 怀远县| 蓝山县| 吴川市| 普宁市| 京山县| 怀集县| 阿拉善左旗| 泰州市| 浙江省| 宜章县| 乐都县| 麻江县| 镇宁| 仪征市| 山西省|