每次要写个windows服务时总是忘记一些细节,于是又去百度搜,其实并不复杂,于是这次自己简单整理下,记录下操作步骤,没任何技术含量,只是简单记录:
一.添加windows服务
1.设计页面,右键添加安装程序
2.右键serviceInstaller,修改几个属性:
3.右键serviceProcessInstaller1,修改account属性:
4.修改service1.cs服务名称与serviceInstall中服务名称的属性一致
5.service1.cs代码中,添加计时器,完善逻辑代码,
protected override void OnStart(string[] args) { System.Timers.Timer timer = new System.Timers.Timer();//添加一个计时器 timer.Elapsed += ShowDate; //绑定事件 timer.Interval = 10 * 1000;//间隔多久执行一次服务,单位毫秒 timer.Enabled=true; //这一点不要忘记 } protected override void OnStop() { } private void ShowDate(object sender, System.Timers.ElapsedEventArgs e) { log.Info("当前时间:" + DateTime.Now.ToString(CultureInfo.InvariantCulture)); }
6.安装与运行:
进入如下目录:C:\Windows\Microsoft.NET\Framework64\v4.0.30319,将InstallUtil.exe复制到改windows服务bin/debug下:
7.cmd命令窗口(管理员身份运行),进入到该debug目录下,之后的安装,运行命令如下:
安装:InstallUtil.exe WindowsDemo0205.exe
卸载:InstallUtil.exe -u WindowsDemo0205.exe
运行:net start MyService
停止:net stop MyService
二.加入log4Net记录日志
1.nuget包工具给项目添加log4Net
2.修改配置文件App.config,添加相关节点
3.使用log记录日志的代码页面类中添加日志记录对象:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
4.最容易忽视且最重要一点,Properties下的AssemblyInfo.cs文件添加如下代码:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
控制台应用程序中也要注意别忘记修改AssemblyInfo.cs文件。
PS:如果是Web程序,Global配置文件下,Application_Start方法中添加代码(log4net.config配成了一个单独文件):
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Server.MapPath("/log4net.config")));
}
以上内容仅作备忘记录