日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

WindowsService服务程序开发

發(fā)布時(shí)間:2023/12/18 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WindowsService服务程序开发 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:http://www.cnblogs.com/babycool/p/3534786.html?

?Windows服務(wù):Microsoft Windows 服務(wù)(即,以前的 NT服務(wù))使您能夠創(chuàng)建在它們自己的 Windows 會(huì)話中可長(zhǎng)時(shí)間運(yùn)行的可執(zhí)行應(yīng)用程序。這些服務(wù)可以在計(jì)算機(jī)啟動(dòng)時(shí)自動(dòng)啟動(dòng),可以暫停和重新啟動(dòng)而且不顯示任何用戶界面。這使服務(wù)非常適合在服務(wù)器上使用,或任何時(shí)候,為了不影響在同一臺(tái)計(jì)算機(jī)上工作的其他用戶,需要長(zhǎng)時(shí)間運(yùn)行功能時(shí)使用。還可以在不同于登錄用戶的特定用戶帳戶或默認(rèn)計(jì)算機(jī)帳戶的安全上下文中運(yùn)行服務(wù)。(摘自百度百科)

?

一:創(chuàng)建

二:屬性

VS自動(dòng)創(chuàng)建了一個(gè)Service1.cs的文件:

點(diǎn)擊F4,查看各個(gè)屬性的含義:

Autolog???????????????? 是否自動(dòng)寫入系統(tǒng)的日志文件

CanHandlePowerEvent???? 服務(wù)時(shí)候接受電源事件

CanPauseAndContinue????????? 服務(wù)是否接受暫停或繼續(xù)運(yùn)行的請(qǐng)求

CanShutdown 服務(wù)是否在運(yùn)行它的計(jì)算機(jī)關(guān)閉時(shí)收到通知,以便能夠調(diào)用 OnShutDown 過程

CanStop????????????????????????????? 服務(wù)是否接受停止運(yùn)行的請(qǐng)求

ServiceName?????????????????????? 服務(wù)名稱

三:功能

點(diǎn)擊F7查看Service1.cs的源代碼:

默認(rèn)實(shí)現(xiàn)了OnStart和OnStop兩個(gè)方法。

以向一個(gè)文本文件中寫入數(shù)據(jù)操作為例:

?

  • public partial class Service1 : ServiceBase

  • {

  • public Service1()

  • {

  • InitializeComponent();

  • }

  • ?
  • /// <summary>

  • /// 服務(wù)啟動(dòng)

  • /// http://www.cnblogs.com/babycool

  • /// </summary>

  • /// <param name="args"></param>

  • protected override void OnStart(string[] args)

  • {

  • string start = string.Format("{0}-{1}",DateTime.Now.ToString("yyyyMMddHHmmss"),"程序啟動(dòng)了。");

  • Log(start);

  • }

  • ?
  • /// <summary>

  • /// 服務(wù)停止

  • /// http://www.cnblogs.com/babycool

  • /// </summary>

  • protected override void OnStop()

  • {

  • string start = string.Format("{0}-{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), "程序停止了。");

  • Log(start);

  • }

  • ?
  • /// <summary>

  • /// 系統(tǒng)關(guān)閉

  • /// http://www.cnblogs.com/babycool

  • /// </summary>

  • protected override void OnShutdown()

  • {

  • string start = string.Format("{0}-{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), "電腦關(guān)閉了。");

  • Log(start);

  • }

  • ?
  • /*

  • /// <summary>

  • /// 服務(wù)暫停

  • /// http://www.cnblogs.com/babycool

  • /// </summary>

  • protected override void OnPause()

  • {

  • ?
  • }

  • */

  • ?
  • /*

  • /// <summary>

  • /// 服務(wù)繼續(xù)

  • /// </summary>

  • protected override void OnContinue()

  • {

  • base.OnContinue();

  • }

  • */

  • /*

  • /// <summary>

  • /// 系統(tǒng)電源狀態(tài)改變

  • /// </summary>

  • /// <param name="powerStatus"></param>

  • /// <returns></returns>

  • protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)

  • {

  • return base.OnPowerEvent(powerStatus);

  • }

  • */

  • ?
  • ?
  • void Log(string str)

  • {

  • string path = "E://def/6.txt";

  • using (StreamWriter sw = File.AppendText(path))

  • {

  • sw.WriteLine(str);

  • }

  • }

  • ?
  • }

  • ?

    四:安裝程序

    切換到 Service1.cs[設(shè)計(jì)] 界面,右擊選擇“添加安裝程序”。

    這時(shí)項(xiàng)目中就添加了一個(gè)新類 ProjectInstaller 和兩個(gè)安裝組件 ServiceProcessInstaller 和 ServiceInstaller。

    選中“serviceInstaller1” 控件,F4打開屬性面板,

    Description ? ? ??服務(wù)程序的描述信息

    DisplayName ? ??服務(wù)程序顯示的名稱

    StartType ? ? ? ?指定如何啟動(dòng)服務(wù) ? ? ?

    ? ? ? ? ? ? ? ? ? ??Manual????? 服務(wù)安裝后,必須手動(dòng)啟動(dòng)

    ? ? ? ? ? ? ? ? ? ??Automatic??? 每次計(jì)算機(jī)重新啟動(dòng)時(shí),服務(wù)都會(huì)自動(dòng)啟動(dòng)

    ? ? ? ? ? ? ? ? ? ? Disabled???? 服務(wù)無(wú)法啟動(dòng)

    ?

    選中“serviceProcessInstaller1” 控件,F4打開屬性面板:

    ?

    將serviceProcessInstaller類的Account屬性改為 LocalSystem。

    這樣,不論是以哪個(gè)用戶登錄的系統(tǒng),服務(wù)總會(huì)啟動(dòng)。

    五:生成

    右擊 項(xiàng)目 選擇生成 ,不能通過F5來(lái)直接運(yùn)行服務(wù)項(xiàng)目。

    ?

    六:安裝卸載服務(wù)

    選擇 VS組件 “Visual Studio命令提示(2010)” 工具,并以“管理員身份運(yùn)行"(win7、win8系統(tǒng)下)。

    注意:這里必須選擇“以管理員身份運(yùn)行”,否則會(huì)報(bào)錯(cuò)。

    ??

    從命令行運(yùn)行 Installutil.exe 目錄 ?命令,以項(xiàng)目中的已編譯可執(zhí)行文件所在的目錄作為參數(shù),安裝服務(wù):

    因?yàn)镮nstallutil.exe程序默認(rèn)在Windows\System32\目錄下,需要通過cmd命令 "cd" 切換目錄。

    從命令行運(yùn)行 Installutil.exe /u 目錄 ? 命令來(lái)卸載服務(wù):

    安裝服務(wù):
    installutil.exe?E:\XTestDemo\X_15_WindowsService\bin\Debug\X_15_WindowsService.exe

    卸載服務(wù):
    installutil.exe /u?E:\XTestDemo\X_15_WindowsService\bin\Debug\X_15_WindowsService.exe

    七:查看服務(wù)狀態(tài)

    在“計(jì)算機(jī)管理”中,服務(wù) 下可以看到剛剛安裝的Service服務(wù)(cmd命令:services.msc---本地服務(wù)設(shè)置):

    默認(rèn)是停止?fàn)顟B(tài)。右擊,選擇“啟動(dòng)”,即可開啟服務(wù)。

    通過“屬性”,可以查看到更詳細(xì)的信息。

    ?

    總結(jié)

    以上是生活随笔為你收集整理的WindowsService服务程序开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。