程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#編寫Windows服務,

C#編寫Windows服務,

編輯:C#入門知識

C#編寫Windows服務,


一.Windows服務介紹:

一個Windows服務程序是在Windows操作系統下能完成特定功能的可執行的應用程序。Windows服務程序雖然是可執行的,但是它不像一 般的可執行文件通過雙擊就能開始運行了,它必須有特定的啟動方式。這些啟動方式包括了自動啟動和手動啟動兩種。對於自動啟動的Windows服務程序,它 們在Windows啟動或是重啟之後用戶登錄之前就開始執行了。只要你將相應的Windows服務程序注冊到服務控制管理器(Service Control Manager)中,並將其啟動類別設為自動啟動就行了。而對於手動啟動的Windows服務程序,你可以通過命令行工具的NET START 命令來啟動它,或是通過控制面板中管理工具下的服務一項來啟動相應的Windows服務程序。

同樣,一個Windows服務程序也不能像一般的應用程序那樣被終止。因為Windows服務程序一般是沒有用戶界面的,所以你也要通過命令行工具或是下 面圖中的工具來停止它,或是在系統關閉時使得Windows服務程序自動停止。因為Windows服務程序沒有用戶界面,所以基於用戶界面的API函數對 其是沒有多大的意義。為了能使一個Windows服務程序能夠正常並有效的在系統環境下工作,程序員必須實現一系列的方法來完成其服務功能。 Windows服務程序的應用范圍很廣,典型的Windows服務程序包含了硬件控制、應用程序監視、系統級應用、診斷、報告、Web和文件系統服務等功 能。

和Windows服務程序相關的命名空間涉及到以下兩個:System.ServiceProcess 和System.Diagnostics。

二.創建Windows服務:

在VS上新建Windows服務項目:右鍵添加服務按照程序

選擇serviceProcessInstaller1>修改裡面的屬性:

選擇serviceInstaller1,修改裡面的屬性:

1.Service啟動屬性:

Manual 服務安裝後,必須手動啟動。

Automatic 每次計算機重新啟動時,服務都會自動啟動。

Disabled 服務無法啟動。

安裝完成之後也可以在系統服務管理器中,設置相應Service的屬性或啟動方式等

計算機管理 -> 服務和應用程序  -> 服務  -> ...

 

 public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Thread.Sleep(10000); //休息是為了附加到進程進行斷點調試
            //開始服務的業務邏輯
        }

        protected override void OnStop()
        {
        }
    }

 完成後編譯通過則進行服務的安裝。

三.安裝服務

以管理員身份運行cmd控制台應用程序 ,輸入: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe C: \Users\YANGYIHE\Desktop\C3.Apns\C3.Apns.PushServer\bin\Debug\服務.exe

InstallUtil.exe的所在目錄 Windows服務所在目錄  //注意中間有空格

四.卸載服務:

以管理員身份運行cmd控制台應用程序,輸入: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe -u C:\Users\YANGYIHE\Desktop\C3.Apns\C3.Apns.PushServer\bin\Debug\服務.exe

InstallUtil.exe的所在目錄 -u Windows服務所在目錄 //使用-u命令卸載

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved