博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows服务初识
阅读量:6957 次
发布时间:2019-06-27

本文共 2948 字,大约阅读时间需要 9 分钟。

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

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

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

用C#创建(Windows Services) 例子服务功能:这个服务在启动和停止时,向一个文本文件中写入一些文字信息。  第一步:创建 要创建一个新的 Windows 服务,可以从 工程中选取 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();}

  

第三步: 将安装程序添加到服务应用程序 .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

你可能感兴趣的文章
mysql忘记密码解决方法
查看>>
Eclipse安装m2eclipse插件(Maven)
查看>>
windows 下最快搭建svn服务器方法
查看>>
获取android系统外置存储卡路径的方法
查看>>
mysql 链接错误
查看>>
php 数组字符串搜索array_search技巧
查看>>
hive中的NULL
查看>>
进程死锁(银行家算法)
查看>>
FragmentTransaction add 和 replace 完全解析
查看>>
1. ASIHttpRequest-创建和执行request
查看>>
mysql中某张表修改较大时的处理
查看>>
如何退出telnet界面
查看>>
nginx+多个tomcat配置
查看>>
sublime实用插件-持续更新
查看>>
DotImage使用教程:从数据库中读写图像
查看>>
行业虚拟化发展趋势——“瑞友杯”虚拟化征文
查看>>
XY问题在开发中的体现
查看>>
更换或加装网卡的eth编号顺序配置
查看>>
Executors下面的线程池实现
查看>>
锐捷CCNA系列(五) 交换机配置模式切换
查看>>