开发环境:win7 64位旗舰版,vs2012ultimate
1.新建一个项目
2. 从一个可用的项目模板列表当中选择Windows服务
3.输入服务名称
4.切换到代码视图页(按F7或在视图菜单当中选择代码)
5.默认方法
//启动服务执行
protected override void OnStart(string[] args)
//停止服务执行
protected override void OnStop()
//恢复服务执行
protected override void OnContinue()
//暂停服务执行
protected override void OnPause()
//写日志
public void WriteLog(string str)
{
using (StreamWriter sw = File.AppendText(@"d:\service.txt"))
{
sw.WriteLine(str);
sw.Flush();
}
}
6.构造函数
//定时器
System.Timers.Timer t = null;
public Service1()
{
InitializeComponent();
//启用暂停恢复
base.CanPauseAndContinue = true;
//每10分钟执行一次
t = new System.Timers.Timer(600000);
//设置是执行一次(false)还是一直执行(true);
t.AutoReset = true;
//是否执行System.Timers.Timer.Elapsed事件;
t.Enabled = true;
//到达时间的时候执行事件(theout方法);
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);
}
public void theout(object source, System.Timers.ElapsedEventArgs e){XXXXX}
7. 将这个服务程序切换到设计视图
8. 右击设计视图选择“添加安装程序”
9. 切换到刚被添加的ProjectInstaller的设计视图
10. 设置ProjectInstaller组件的属性:
1) ServiceName = 服务名称
2) StartType = Automatic
11. 设置serviceProcessInstaller1组件的属性
Account = LocalSystem
12. 生成shift+F6
13.改变路径到你项目所在的bin\Debug文件夹位置(如果你以Release模式编译则在bin\Release文件夹)
例如 cd c:/klakfdlak
然后执行命令“InstallUtil.exe MyWindowsService.exe”注册这个服务,使它建立一个合适的注册项。
(InstallUtil.exe文件路径:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe)
14. 右击桌面上“我的电脑”,选择“管理”就可以打计算机管理控制台
15. 在“服务和应用程序”里面的“服务”部分里,你可以发现你的Windows服务已经包含在服务列表当中了
16. 右击你的服务选择启动就可以启动你的服务了
17.卸载服务InstallUtil.exe MyWindowsService.exe /u
18.调试
点击“调试”菜单
点击“附加到进程”菜单
在 可用进程 列表中,把进程定位于你的可执行文件MyWindowsService.exe名称上点击选中它
点击 附加 按钮
在方法里设置一个断点,然后等它执行
参考:http://www.cnblogs.com/qfb620/archive/2008/12/17/1356994.html
分享两篇写过的两篇 window服务:
不同服务器SQL Server数据转换,使用ADO.NET