项目需求要做一个定时扫表,将按条件查询到的数据插入或者更新到另一个数据表的需求,老大要求让用window service来做

因为以前没有做过,把这次的经历写出来.作为备忘.

1.什么是windows服务

以下部分内容来自http://www.cnblogs.com/salomon/archive/2012/05/21/2511643.html

Windows服务,微软的官方定义是这样的:Microsoft Windows 服务(即以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的

可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这些功能使服务非常适合在服务器上使用,每当

需要使用不会影响在同一台计算机上工作的其他用户的功能时也适用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

这种描述过于抽象而且笼统。那么究竟什么是服务呢?首先Windows服务和普通应用一样是是一个应用程序,一个后台进程。但它又十分特殊,特殊在以

下几点:

  1.它通常在系统启动时用户登录Windows之前由NET kernel中的SCM(Service Control manager)加载,并一般在系统启动时自动开启的。

  2.Windows服务独立于特定用户之上,也就是说它可以被一台计算机上任何用户所共用。

如果一个应用需要长时间的后台运行,并且独立于某个特定用户控制台,我们可以考虑把它写成Windows服务。它通常没有界面(没有硬性限制,可以编

写有界面的Windows服务),通常随机启动,随机关闭而关闭,但也可以随用户需要手动启动,一般两种方法:1 Control Panel -> Administrative Tools

-> Services  2,由其它程序调用SCM提供的接口开启。类似于Windows服务东西比如UNIX的daemons,Dos下的运行于AUTOEXEC.BAT或者 CONFIG.SYS的TSR。常见的服务包括硬件驱动(打印机等),FTP服务,数据库服务,WEB服务等等。

2.编写

2.1 首先创建windows服务项目

如图,我们在创建项目的时候选择windows 服务项目.来进行创建

2.2编写业务逻辑代码

我们也可以将服务类 进行重命名. 这里的OnStart方法在服务启动的时候调用,

所以我们可以将业务逻辑写在这里.建议封装一个类和方法来封装业务逻辑操作,然后在这里调用该类的方法

OnStop方法在服务停止的时候调用,我们在这里可以写一些处理逻辑

3.设置服务名称和登录权限

在  服务的 的设计界面 右键-添加安装程序.会添加一个ProjectInstaller.cs 类.

这里我们需要注意两件事.

A.为设计界面中 serviceInstaller1 控件设置服务的启动类型

Automatic--自动启动

Manual--手动启动

B.设置服务启动登录权限

这里我们选择 以本地系统的权限来启动.

4.安装服务

windows 服务 微软提供了自带的安装程序 InstallUtil.exe

以管理员身份运行该程序,然后安装 你编译好的服务

cmd 会提醒你服务是否安装成功

5.查看服务状态

5.删除服务

我们在调试过程中,可能需要删除服务,然后修改代码.然后重新安装服务,再次调试.

注意,必须先删除服务 否者生成失败.

注意,删除服务之前必须先停止服务.否则删除失败.

建议开两个 CMD不要关闭 一个安装 一个删除,

6.进行服务调试

发开的时候我们要测试业务逻辑和我们预期的是否一致,但是调试服务又很麻烦.

我们可以在Program.cs

 static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}

在这里调用你的业务类.new 出来直接调用

下面的注释掉.

Main函数也是这个服务启动的入口.

我们将服务安装到本机并且启动之后,也可以以附加到进程的方式调试服务运行

编写Windows Service 备忘的更多相关文章

  1. C# 编写Windows Service(windows服务程序)

    C# 编写Windows Service(windows服务程序)   Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.W ...

  2. 分别在.NET Framework 与 .NET Core 框架下 编写Windows Service(windows服务程序)

    前言,为什么会分别在两个框架下编写Windows Service,是因为最近在做区块链这块,使用的是NEO(小蚁区块链)的相关技术,NEO使用的是.net core 2.1,业务上需要写两个程序,一个 ...

  3. Bonobo Git Server (Simple git server for Windows.) 测试备忘

    Bonobo Git Server是一款Windows上的Git Server,它使用IIS即可,走的是Http协议,只要简单的安装就能使用,但是因为我的项目大小有1.35GB在 push 的时候一直 ...

  4. C# 编写Windows Service(windows服务程序)【转载】

    [转]http://www.cnblogs.com/bluestorm/p/3510398.html Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成 ...

  5. C++ 编写Windows service

    最近实现一个windows server端守护进程启动服务功能(c++实现),遇到了一些问题,记录一下 1. 启动Service实现代码: int _tmain(int argc, TCHAR* ar ...

  6. windows端口备忘

    FTP 端口号21 SSH 端口号22 Telnet 端口号23

  7. windows shell备忘

    1.查找占用80端口的进程idnetstat -aon|findstr "80" 2.查找进程id为"1000"的进程名tasklist|findstr &qu ...

  8. 安装windows系统备忘

    1.已写入系统镜像的U盘 2.激活工具(同时激活系统及office) 3.如果没有网口或网线,需要准备万能网卡驱动 4.office 5.360 6.输入法 7.微信 8.谷歌浏览器

  9. 使用Windows Service Wrapper快速创建一个Windows Service

    前言 今天介绍一个小工具的使用.我们都知道Windows Service是一种特殊的应用程序,它的好处是可以一直在后台运行,相对来说,比较适合一些需要一直运行同时不需要过多用户干预的应用程序,这一类我 ...

随机推荐

  1. Visual Studio Code开发TypeScript

    [Tool] 使用Visual Studio Code开发TypeScript   [Tool] 使用Visual Studio Code开发TypeScript 注意 依照本篇操作步骤实作,就可以在 ...

  2. hdu Oulipo(kmp)

    Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...

  3. Poj Roadblocks(次短路)

    Description Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best ...

  4. Layout Renderers

    Layout Renderers NLog package ${activityid} - Puts into log a System.Diagnostics trace correlation i ...

  5. 我展示了视频采集前端vfe和camera,decode等交互驱动的体系结构

    到现在都与处理器接触较多.更深入的驱动主要是前端视频采集.控制TI的DM64xx,DM3730.纪氏A31等待.他们发现,它们的使用的基本框架的是不一样的. 当然,典型camera例如ov系列,dec ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(8)-DbSession线程内唯一

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(8)-DbSession线程内唯一 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建  ...

  7. HDU 3415 Max Sum of Max-K-sub-sequence 最长K子段和

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415 意甲冠军:环.要找出当中9长度小于等于K的和最大的子段. 思路:不能採用最暴力的枚举.题目的数据量是 ...

  8. 豆瓣api之OAuth认证

    豆瓣api通过OAuth允许第三方应用访问用户数据,所以OAuth认证就是我们整个project的基础了. OAuth认证听起来挺神秘,其实挺简单的. 现在的大型网站的开放平台的认证几乎都是采用OAu ...

  9. Webbrowser控件史上最强技巧全集

    原文:Webbrowser控件史上最强技巧全集 Webbrowser控件史上最强技巧全集 VB调用webbrowser技巧集 1.获得浏览器信息: Private Sub Command1_Click ...

  10. MVC02

    1.在EF5.0修改实体的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误db.Configuration.ValidateOn ...