一、Windows Service 服务,可以在用户未登录的时候开始运行提供服务(下图)
二、开始建立一个Windows 服务
1.打开VS2008 新建一个Windows 服务项目
系统会默认的建立一个
Program.cs 是启动文件,里面有如下代码用来启动服务
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
2.Service1.cs 服务类。继承自System.ServiceProcess.ServiceBase
右键点击此文件,点击“查看代码”,打开类代码视图可以找到几个重载方法
OnStart方法来响应启动服务的事件
OnStop方法来响应停止服务的事件
OnPause方法来响应暂停服务的事件
OnContinue方法来响应恢复提供服务的事件
在重载这些方法时必须要立即返回,其中不能出现长时间的操作,若处理时间过长则Windows服务管理器会觉得该Windows服务停止响应而报错。
3.在“设计器视图”右键,会看到一个添加“添加安装程序”,添加一个ProjectInstaller.cs
ProjectInstaller.cs 安装服务,继承自System.Configuration.Install.Installer,该类用于配合微软.NET框架自带的安装命令行工具InstallUtil.exe
将此文件的serviceProcessInstaller1->Accout属性,设为:LocalSystem(默认是User)。
4.现在要实现点小功能来学习一下Windows 服务,
功能是简单实现:每隔5秒向SQL数据库插入一条数据,然后将SQL语句记录到指定的TXT文件中做日志,
可以将写好的功能组件引用进来使用,如果没有可以简单的新建类库项目,打开默认的Class1.cs文件,写以下几句代码
namespace ClassLibrary1
{
public class Class1
{
public static void Test()
{
LogService ls = new LogService();
ls.InitLog("WindowsService", "d:\\log\\");
ls.WriteLog(" -------------------------------" + DateTime.Now.ToString() + "------------------------------------------");
try
{
using (SqlConnection cn = new SqlConnection("Data Source=192.168.1.20;Initial Catalog=TestWindowsService;User ID=sa;Password=saaaaa"))
{
cn.Open();
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.Text;
cm.CommandText = "INSERT INTO T_Test (InsertTime) VALUES (@insertTime)";
cm.Parameters.AddWithValue("@insertTime", DateTime.Now.ToString());
cm.ExecuteNonQuery();
ls.WriteLog("操作成功!SQL语句:" + cm.CommandText);
}
}
}
catch (Exception ex)
{
ls.WriteLog("操作失败:" + ex);
}
}
}
}
将类库项目引用到服务项目中来,添加一个System.Timers下的Timer控件,在Elapsed事件中就可以直接调用
5.手动安装:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe FilePath\xx.exe
这个FilePath,就是程序文件夹中Debug目录先的 项目名.exe 文件 ,我一直是默认建的,所以这里是WindowsService1.exe
安装成功,会在本文的第一个图片位置找到服务名为Service1的服务选项,手动的启动它一下,可以在D:\log下看到日志
6.卸载:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -u FilePath\xx.exe
卸载后页面中没有了图片中的服务
7.最后:
可以为Windows 服务添加客户端,也可以在启动程序中编写不使用 InstallUtil.exe 的安装,这些都可以在完成功能的时候加上,方法网上可以找到。
调试服务可以使用附加进程的方式,也可以直接将功能组件开发好调用或者是设置调试线程等方法进行调试,也可以建立测试调试。
- 大小: 71.6 KB
- 大小: 133.5 KB
- 大小: 125.2 KB
- 大小: 137.5 KB
- 大小: 99.4 KB
- 大小: 67.4 KB
分享到:
相关推荐
C# 开发 windows 服务在 后台执行。 此代码中包含(用window是服务开发的文件夹监控(注 :仅供参考使用)
用c# 开发Windows服务实例,实现开机自动启动,执行指定路径下的.exe 程序
这里图文解释了如何使用C#开发Windows服务的基本操作,不会使用的可以看看
用C#开发Windows服务、自动安装注册(转).doc
C#开发windows服务—示例介绍是关于介绍利用C#开发出一个简单服务的示例及介绍。
C#, Windows 服务,开发详解,如何开发和设置windows服务,有个小案例在里面。
详细介绍使用C#开发Windos服务,和如何配置服务在桌面上显示信息,0分提供给分数不多的同行们。
主要为大家详细介绍了C#开发windows服务实现自动从FTP服务器下载文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在win7系统下用C#开发windows服务程序,解决了 “未找到源,但未能搜索某些或全部事件日志。不可访问的日志: Security。”的解决方法。
C#开发windows服务程序,可随系统启动自启动,客户端可控制是否启动,注册或注销。服务程序主要目标是监视指定目录文件变化。指定目录下新产生文件则对符合类型的文件进行读取。
C#windows 服务开发实例 含源代码
C#创建Windows服务(Windows Services) 实战之系统定时重启服务-程序开发
1、C#开发windows服务 2、禁止QQ等程序运行 3、为windows服务创建自动安装程序 下面针对这三个基本功能进行实现 一、C#开发windows服务 Windows服务在VS以前的版本中叫NT服务,在VS.NET启用了新的名称。用C#创建...
本程序用ASP.NET C#开发,不针对系统版本限制。 本源码拿就来可以直接写您想要的服务,无需再改其它的代码,拿来主义是不是很好?例如订单服务。 本服务是100%源码,源码中包含: 1、启动服务.bat 2、停止服务.bat 3...
在很多应用中需要做windows服务来操作数据库等操作,文章教授大家如何快速的使用C#开发windows服务程序
c#开发windows设备管理器,能够直接运行
C#开发Windows+Service程序源码,里面详细介绍了如何开发Windows服务程序,有完整的说明文档,有实例代码可供参考,是你学习WindowsServer的好帮手
本文档是用C#编写Windows服务程序的图文教程,介绍Windows服务程序的开发步骤。