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(); } } } }
|