参考网址1:http://www.vchome.net/dotnet/dotnetdocs/dotnet38.htm

参考网址2:http://zhidao.baidu.com/link?url=7-fxAfbXRY4P_jdSRw9ttaGnNjYxS2ToA3Gr9wD9B57vWOvA5x55F_VFftzSfd0DRFS22IgpavzBEv_UM8SeNK

===========转载================================================

用C#创建Windows服务(Windows Services)例子服务功能:这个服务在启动和停止时,向一个文本文件中写入一些文字信息。

 第一步:创建服务框架 要创建一个新的 Windows 服务,可以从Visual C# 工程中选取 Windows 服务(Windows Service)选项,给工程一个新文件名,然后点击 确定。

你可以看到,向导向工程文件中增加WebService1.cs类:

其中各属性的含意是:ü         Autolog                 是否自动写入系统的日志文件ü         CanHandlePowerEvent     服务时候接受电源事件ü         CanPauseAndContinue          服务是否接受暂停或继续运行的请求ü         CanShutdown 服务是否在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程ü         CanStop                              服务是否接受停止运行的请求

ü         ServiceName                       服务名

第二步:向服务中增加功能 在 .cs代码文件中我们可以看到,有两个被忽略的函数 OnStart和OnStop。 

OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。在这里,当启动和停止服务时,向一个文本文件中写入一些文字信息,代码如下:
protected override void OnStart(string[] args)
{FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); m_streamWriter.WriteLine("mcWindowsService:         Service Started"+DateTime.Now.ToString()+"\n"); m_streamWriter.Flush();m_streamWriter.Close();fs.Close();}protected override void OnStop(){FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); m_streamWriter.WriteLine(" mcWindowsService: Service Stopped "+DateTime.Now.ToString()+"\n"); m_streamWriter.Flush();m_streamWriter.Close();fs.Close();}

  

 第三步: 将安装程序添加到服务应用程序

Visual Studio.NET 随附有安装组件,可用来安装与服务应用程序相关联的资源。安装组件在正在安装到的系统上注册一项单个的服务,并使服务控制管理器知道该服务的存在。

要正确安装服务,并不需要在安装程序中进行任何特殊编码。但是,如果需要向安装进程添加特殊功能,则可能偶尔需要修改安装程序的内容。

       将安装程序添加到服务应用程序的步骤是:

1:在解决方案中,访问要向其中添加安装组件的服务的Design视图。

2:在属性窗口中,单击添加安装程序链接

这时项目中就添加了一个新类 ProjectInstaller 和两个安装组件 ServiceProcessInstaller 和 ServiceInstaller,并且服务的属性值被复制到组件。 

3:若要确定如何启动服务,请单击 ServiceInstaller 组件并将 StartType 属性设置为适当的值。

ü         Manual      服务安装后,必须手动启动。

ü         Automatic    每次计算机重新启动时,服务都会自动启动。

ü         Disabled     服务无法启动。

4:将serviceProcessInstaller类的Account属性改为 LocalSystem

     这样,不论是以哪个用户登录的系统,服务总会启动。第四步:生成服务程序

通过从生成菜单中选择生成来生成项目。

注意   不要通过按 F5 键来运行项目——不能以这种方式运行服务项目。

第五步:安装服务

访问项目中的已编译可执行文件所在的目录。 用项目的输出作为参数,从命令行运行 InstallUtil.exe。在命令行中输入下列代码: installutil yourproject.exe卸载服务 用项目的输出作为参数,从命令行运行 InstallUtil.exe。 installutil /u yourproject.exe

===========体验=========================================

一个宿主多个服务

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

右击两个服务,选择‘添加安装程序’

确定两个服务的parent 为 ProjectInstaller

转载于:https://www.cnblogs.com/senyier/p/3596090.html

windows服务初识相关推荐

  1. .Net Core快速创建Windows服务

    1.新建.Net Core控制台程序,添加新建项Windows服务: 修改Progran.cs: class Program{static void Main(string[] args){Servi ...

  2. C#创建Windows服务

    利用VS.NET创建C# Windows服务 在很多应用中需要做windows服务来操作数据库等操作,比如 (1)一些非常慢的数据库操作,不想一次性去做,想慢慢的通过服务定时去做,比如定时为数据库备份 ...

  3. C#实现一个用于开机启动其他程序的Windows服务

    今天决定写写博客,不为别的,只当自己的积累,如果与此同时能不误导他人甚至给了朋友们一些启发,那真是更好了! 程序的目的和用途: 很多开机启动程序仅仅加在启动项里面,只有登陆后才真正启动.windows ...

  4. 用.NET创建Windows服务

    用.NET创建Windows服务 译者说明:我是通过翻译来学习C#的,文中涉及到的有Visual Studio.NET有关操作,我都根据中文版的VS.NET显示信息来处理的,可以让大家不致有误解. 作 ...

  5. 用C#创建Windows服务(Windows Services)

    转载自 hyslove 最终编辑 hyslove Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是 ...

  6. java建立_利用Java创建Windows服务

    1.Java测试代码 importorg.apache.log4j.Logger;public classTest {private static Logger logger = Logger.get ...

  7. 更上层楼:动态安装你的windows服务

    前言:先说明一下本文示例windows服务的简单需求,即根据外部配置实现不同方式记录日志的功能.记录日志的方式有三种,分为文本记录.数据库记录以及文本和数据库同时记录日志.如您所知,这个功能基本上没有 ...

  8. WebSocket 网页聊天室的实现(服务器端:.net + windows服务,前端:Html5)

    websocket是HTML5中的比较有特色一块,它使得以往在客户端软件中常用的socket在web程序中也能轻松的使用,较大的提高了效率.废话不多说,直接进入题. 网页聊天室包括2个部分,后端服务器 ...

  9. Windows服务初探

    在Windows中,对于一些不需要显示图形界面的应用程序,我们可以把它做成Windows服务,让它在后台运行,例如一些文件监视服务等.一台电脑中的Windows服务可以在"计算机-管理-服务 ...

  10. C#实现Windows服务的制作安装和删除

    运行Visual Studio.net,建立一个C#的Windows服务项目. 主程序代码: 以下为引用的内容: 以下是引用片段: using System; using System.Collect ...

最新文章

  1. 文档扫描仪的构建——使用Python,OpenCV应用透视变换来获得图像的自顶向下的“鸟瞰图”
  2. RDKit | 基于scikit-learn将pytorch用于QSAR模型构建
  3. JSR 303约束规则
  4. 【免费】网易开卖CTO啦——开发者踩坑专场
  5. swing中模态对话框(setModal(true))和显示对话框(setVisible(true))的编写顺序
  6. 2020年A股IPO市场全景回顾与2021年前景展望报告
  7. iPhone 11系列低至4599元,40亿消费券开抢!618正式开启了
  8. Windows Server 2008 R2的教程36篇!
  9. 五、鼎捷T100生产管理之报工
  10. 详细讲解黑客常用的远程控制木马
  11. 如何在自带.net4.8的Windows 10系统上装其他版本的.net
  12. snaker工作流核心表学习
  13. Unity3D导入图片资源
  14. 51单片机延时程序的延时时间计算
  15. Dfam:真核生物转座元件数据库
  16. 推荐系统 - 多目标模型融合部分
  17. 新华三:助力IPv6部署,我们责无旁贷
  18. ES9023P音频DAC解码芯片
  19. 提升方法(Boosting)
  20. 新一代图片编解码技术在淘宝的应用及落地

热门文章

  1. (ZT)关于IAP防止破解的几点
  2. Java 软件实践 VZone PPT Show 一次及其Perfect的演示
  3. 关于数据库设计是否需要加入(建立)外键
  4. 不知不觉,写了一个编译器(一)
  5. 虚拟内存和swap分区的关系
  6. common.css
  7. iOS 谁说程序猿不懂浪漫之 爱心
  8. C++编程实践: 抽象基类
  9. 2014华为机试西安地区B组试题
  10. 传统反病毒产品丧钟响起