在很多应用中需要做windows服务来操作数据库等操作,比如
(1)一些非常慢的数据库操作,不想一次性去做,想慢慢的通过服务定时去做,比如定时为数据库备份等
(2)在.net  Remoting中利用windows服务来做Host

利用vs.net我们可以在几分钟之内建立其windows服务,非常简单

下面说一下步骤
1.  新建一个项目
2.  从一个可用的项目模板列表当中选择Windows服务
3.  设计器会以设计模式打开
4.  从工具箱的组件表当中拖动一个Timer对象到这个设计表面上  (注意:  要确保是从组件列表而不是从Windows窗体列表当中使用Timer) 
5.  设置Timer属性,Interval属性200毫秒(1秒进行5次数据库操作)
6.  然后为这个服务填加功能
7.双击这个Timer,然后在里面写一些数据库操作的代码,比如
  SqlConnection  conn=new  SqlConnection("server=127.0.0.1;database=test;uid=sa;pwd=275280");
      SqlCommand  comm=-new  SqlCommand("insert  into  tb1  (''111'',11)",conn);
      conn.Open();
      comm.ExecuteNonQuery();
      conn.Close();
8.  将这个服务程序切换到设计视图
9.  右击设计视图选择“添加安装程序”
10.  切换到刚被添加的ProjectInstaller的设计视图
11.  设置serviceInstaller1组件的属性: 
        1)  ServiceName  =  My  Sample  Service
        2)  StartType  =  Automatic  (开机自动运行)
12.  设置serviceProcessInstaller1组件的属性    Account  =  LocalSystem
13.  改变路径到你项目所在的bin\Debug文件夹位置(如果你以Release模式编译则在bin\Release文件夹)
14.  执行命令“InstallUtil.exe  MyWindowsService.exe”注册这个服务,使它建立一个合适的注册项。(InstallUtil这个程序在WINDOWS文件夹\Microsoft.NET\Framework\v1.1.4322下面)
15.  右击桌面上“我的电脑”,选择“管理”就可以打计算机管理控制台
16.  在“服务和应用程序”里面的“服务”部分里,你可以发现你的Windows服务已经包含在服务列表当中了
17.  右击你的服务选择启动就可以启动你的服务了
看看数据库是不是一秒多了5个记录啊

需要注意的是:
如果你修改了这个服务,路径没有变化的话是不需要重新注册服务的,如果路径发生了变化,需要先卸载这个服务InstallUtil.exe  /u参数,然后再重新安装这个服务,不能直接安装。还有就是windows服务是没有界面的,不要企图用控制的输出方式来输出一些信息,你只能添加一个EventLog,通过WriteEntry()来写日志。

关于怎么用windows服务来做一个远程服务可以看一下http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetHT15.asp
 
 

posted on 2005-05-04 18:14  dahai.net  阅读(414)  评论(0编辑  收藏  举报