学院首页>网络编程>ASP.NET>如何用.NET创建Windows服务

如何用.NET创建Windows服务

作者: 来源: 添加时间:2006-5-21 19:59:05

Windows服务样例

  下面就是我命名为MyService的Windows服务的所有源代码。大多数源代码是由Visual Studio自动生成的。

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.ServiceProcess;

namespace CodeGuru.MyWindowsService
{
  public class MyService : System.ServiceProcess.ServiceBase
  {
   private System.Timers.Timer timer1;
   /// <remarks>
   /// Required designer variable.
   /// </remarks>
   private System.ComponentModel.Container components = null;

   public MyService()
   {
// This call is required by the Windows.Forms
// Component Designer.
  InitializeComponent();
   }

   // The main entry point for the process
   static void Main()
   {
  System.ServiceProcess.ServiceBase[] ServicesToRun;


  ServicesToRun = new System.ServiceProcess.ServiceBase[]
{ new MyService() };

  System.ServiceProcess.ServiceBase.Run(ServicesToRun);
   }

   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InitializeComponent()
   {
  this.timer1 = new System.Timers.Timer();
  ((System.ComponentModel.ISupportInitialize)
(this.timer1)).BeginInit();
  //
  // timer1
  //
  this.timer1.Interval = 30000;
  this.timer1.Elapsed +=
   new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
  //
  // MyService
  //
  this.ServiceName = "My Sample Service";
  ((System.ComponentModel.ISupportInitialize)
(this.timer1)).EndInit();

   }

   /// <summary>
   /// Clean up any resources being used.
   /// </summary>
   protected override void Dispose( bool disposing )
   {
  if( disposing )
  {
   if (components != null)
   {
   components.Dispose();
   }
  }
  base.Dispose( disposing );
   }

   /// <summary>
   /// Set things in motion so your service can do its work.
   /// </summary>
   protected override void OnStart(string[] args)
   {
  this.timer1.Enabled = true;
  this.LogMessage("Service Started");
   }
 
   /// <summary>
   /// Stop this service.
   /// </summary>
   protected override void OnStop()
   {
  this.timer1.Enabled = false;
  this.LogMessage("Service Stopped");
   }

   /*
* Respond to the Elapsed event of the timer control
*/
   private void timer1_Elapsed(object sender,
System.Timers.ElapsedEventArgs e)
   {
  this.LogMessage("Service Running");
   }

   /*
* Log specified message to database
*/
   private void LogMessage(string Message)
   {
  SqlConnection connection = null;
  SqlCommand command = null;
  try
  {
   connection = new SqlConnection(
"Server=localhost;Database=SampleDatabase;Integrated
Security=false;User Id=sa;Password=;");
command = new SqlCommand(
"INSERT INTO MyServiceLog (vc_Status, dt_Created)
VALUES ('" + Message + "',getdate())", connection);
   connection.Open();
   int numrows = command.ExecuteNonQuery();
  }
  catch( Exception ex )
  {
   System.Diagnostics.Debug.WriteLine(ex.Message);
  }
  finally
  {
   command.Dispose();
   connection.Dispose();
  }
   }
  }
}

第 2 页,共 4 页 [1] [2] [3] [4]
站内搜索