.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服务,不知道能不能在实际中起到应有的作用。