使用Topshelf建立Windows 服務

來源:互聯網
上載者:User

標籤:des   blog   http   使用   os   strong   檔案   io   

本文轉載:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html

 

b.利用組件Topshelf

 

本方式特點:代碼簡單,開源組件,Windows服務可運行多個執行個體

 

Topshelf是一個開源的跨平台的服務架構,支援Windows和Mono,只需要幾行代碼就可以構建一個很方便使用的服務. 官方網站:http://topshelf-project.com

 

 

 

第1步:引用程式集TopShelf.dll和log4net.dll

 

第2步:建立一個服務類MyClass,裡麵包含兩個方法Start和Stop,還包含一個定時器Timer,每隔5秒往文字檔中寫入字元

 
    public class MyClass    {        readonly Timer _timer;        private static readonly string FileName = Directory.GetCurrentDirectory ( ) + @"\" + "test.txt";        public MyClass ( )        {            _timer = new Timer ( 5000 )            {                AutoReset = true ,                Enabled = true            };            _timer.Elapsed += delegate ( object sender , ElapsedEventArgs e )            {                this.witre ( string.Format ( "Run DateTime {0}" , DateTime.Now ) );            };        }        void witre ( string context )        {            StreamWriter sw = File.AppendText ( FileName );            sw.WriteLine ( context );            sw.Flush ( );            sw.Close ( );        }        public void Start ( )        {            this.witre ( string.Format ( "Start DateTime {0}" , DateTime.Now ) );        }        public void Stop ( )        {            this.witre ( string.Format ( "Stop DateTime {0}" , DateTime.Now ) + Environment.NewLine );        }    }
 

第3步:使用Topshelf宿主我們的服務,主要是Topshelf如何設定我們的服務的配置和啟動和停止的時候的方法調用

 
    class Program    {        static void Main ( string [ ] args )        {            HostFactory.Run ( x =>            {                x.Service<MyClass> ( ( s ) =>                {                    s.SetServiceName ( "ser" );                    s.ConstructUsing ( name => new MyClass ( ) );                    s.WhenStarted ( ( t ) => t.Start ( ) );                    s.WhenStopped ( ( t ) => t.Stop ( ) );                } );                x.RunAsLocalSystem ( );                //服務的描述                x.SetDescription ( "Topshelf_Description" );                //服務的顯示名稱                x.SetDisplayName ( "Topshelf_DisplayName" );                //服務名稱                x.SetServiceName ( "Topshelf_ServiceName" );            } );        }    }
 

第4步: cmd命令

 

ConsoleApp_Topshelf.exe  install    (安裝Windows服務)

 

ConsoleApp_Topshelf.exe  uninstall  (卸載Windows服務)

 

 

 

代碼下載:http://files.cnblogs.com/aierong/ConsoleApp_Topshelf.rar

 

 

使用Topshelf建立Windows 服務

使用Topshelf建立Windows 服務簡要的介紹了建立Windows服務的另一種方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通過5個步驟詳細的介紹使用使用Topshelf建立Windows 服務。Topshelf是一個開源的跨平台的宿主服務架構,支援Windows和Mono,只需要幾行代碼就可以構建一個很方便使用的服務宿主。

參考文章:http://www.cnblogs.com/shanyou/archive/2009/11/24/1609862.html

http://www.cnblogs.com/shanyou/archive/2011/05/04/2037008.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.