Visual Studio 2005 创建Windows服务程序(C#)

  1、新建项目

   打开VS>文件—>新建—>项目—>Visual C#>Windows>Windows服务->起个名儿—>确定  (如图)
  

  

  2、添加
Timer组件

   从工具箱—>"组件"下拉列表中拖动一个Timer控件到设计视图上

注意:看看这个Timer控件的属性中的命名空间是什么,如果是System.Timers.Timer那就对了;如果是System.Windows.Froms.Timer那就错了(用这种Timer则服务运行时不会执行我们编写的代码)。解决方法:删除这个Timer;在工具箱上的组件列表上右键,单击选择项出现选择工具箱项对话框,然后在.net Framwork选项卡下找到命名空间为System.Timers的那个Timer控件,钩选确认即可.这时新的Timer控件出现在了工具箱的组件列表中(如图)。现在拖动一个Timer控件到设计表面上。

   

  3、设置
Timer属性,主要是设置Interval属性(单位为毫秒),即间隔多少时间执行服务


  4、双击
Timer进入代码视图,在事件方法里添加我们要执行的代码

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

{
  //服务运行要执行的代码

}

   例如:我要每一分钟在我的数据库test下的testservice表中插入一条记录,则可以将TimerInterval属性设置为1000,并在Elapsed方法下加入以下代码:

      SqlConnection conn = new SqlConnection("server=192.168.1.143;database=test;uid=sa;pwd=123");

      SqlCommand comm = new SqlCommand("insert into testservice(number) values('china')", conn);

      conn.Open();

      comm.ExecuteNonQuery();

      conn.Close();

    另外,可以在OnStartOnStop方法中加入对Timer的控制

protected override void OnStart(string[] args)
{

            // TODO: 在此处添加代码以启动服务。

            this.timer1.Enabled = true
 }

 protected override void OnStop()

{

            // TODO: 在此处添加代码以执行停止服务所需的关闭操作。

            this.timer1.Enabled = false;

 }


  5、将这个服务程序切换到设计视图,右击设计视图选择
添加安装程序VS将自动添加两个控件:serviceProcessInstaller1serviceInstaller1
。接下来设置两个控件的属性,主要设置:

1)serviceInstaller1ServiceName属性(即你的服务的名称)

2)serviceInstaller1StartType属性设置为Automatic(自动)

3)serviceProcessInstaller1Account属性设置为:LocalSystmem

  6、编译生成EXE文件(bin\debug\)

  7、注册我们创建的服务

命令行形式调用 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下的InstallUtil.exe 来注册我们项目中bin\debug目录下的服务程序

注意:调用时注意路径一定要正确,比如:我的调用如下:

C:\>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe  C:\FirstWindowsService\FirstWindowsService\bin\Debug\FirstWindowsService.exe  回车
(如图)

 


      8
、现在,你可在控制面板-管理工具-服务下看到你的服务了(先刷新一下,即可看到)并且可以看到其执行效果。
     
      


     注意如果你修改了这个服务,但路径没有变化的话是不需要重新注册服务的,只需要先暂停服务,重新生成exe,再启动服务;如果路径发生了变化,需要先卸载这个服务(使用InstallUtil.exe /u 命令,注意路径),然后再重新注册这个服务,

 

posted @ 2009-07-30 17:35  锐意  阅读(1301)  评论(1编辑  收藏  举报