Softfan.Net

C#,Design Patterns,ADO EF,WWF

 

.NET开发windows 服务初探

      最近项目需要3方状态同步,就是PDM、CAD、还有一个即时通讯的工具,因为这些东西都不是一种语言开发的。所以怎么做到这点有些麻烦。以数据库为基础是肯定的了,那怎么才能完成这个监控呢,我先设计监控系统进程,加上数据库判断,可是这样做会给软件造成性能的影响。于是想到使用系统服务来完成这个中转。当然只是设想,能不能完成还是未知数。
      打开C#项目,找到了windows服务项目,新建一个进去。设计界面是组件的形式。切入进代码视图:哇,都给写好了:
     系统给好的3个函数:Main,Start,Stop
     简单的写个测试的函数:
  private void WriteLog(string content)
  {
   string fPath=@"d:\Windows服务\log.txt";
   StreamWriter sWriter=null;
   if(!File.Exists(fPath))
    File.Create(fPath);
   try
   {
    sWriter=new StreamWriter(fPath,true);
    sWriter.WriteLine(content);
   }
   catch(System.Exception err)
   {
    throw new Exception("服务写入错误",err);
   }
   finally
   {
    sWriter.Close();
   }
   
  }
在start函数中加入他,生成。执行————〉提示不能直接执行。需要Installer。
没办法,去网上查了下。
原来在组件界面右击——〉添加安装项目,ok
按照网上的设置好属性:
设置serviceInstaller1组件的属性: 
    1) ServiceName = My Sample Service
    2) StartType = Automatic 
设置serviceProcessInstaller1组件的属性 
    1) Account = LocalSystem
生成,用InstallUtil.exe注册一下。在.net命令提示符下输入InstallUtil 服务名.exe
提示注册成功。
在服务管理中找到刚刚注册的服务启动。
d:\Windows服务\log.txt 察看
果然添加了“服务启动...”的信息。
哈哈,第一次尝试windows服务,不知道能不能在实际中起到应有的作用。

 

posted on 2006-08-16 12:43  漫雨随风  阅读(168)  评论(0编辑  收藏  举报

导航