• C# 使用windows程序控制window服务


    最近在做一个大型项目的时候,需要window服务来做扫表倒表,但是又最好能够随时远程登录后控制,并且可以传递一些参数进去让windows服务与外界有些交互,并得到控制,于是,自己研究了一番,现在,把一些体会拿来跟大家一起体会。
    在C# 中使用一个System.ServiceProcess 命名空间下的ServiceControl 来对windows服务进行控制,其实在底层是SCM(service control manager)。
    咱们开始来一步一步操作。
    第一步 :添加一个引用,System.ServiceProcess




    第二步:从vs2005的服务器资源管理器来拖动一个服务示例到设计界面。


    第三步:编写控制服务的代码
    当把一个服务拖动到设计界面的时候,就创建了一个基于某个服务的服务控制组件实例,ServiceControl1,
    此实例有许多方法可以控制服务的状态,以及执行自定义命令,执行自定义命令要注意的一点就是命令只能传递一个int类型的参数,而且这个参数有限制大于128,小于256,就是这个限制条件害得我郁闷了好久,我一直传递的1,2,3之类的参数,老是说报错。。。。最后在google中的代码搜索中找到了答案。
    当然在windows服务里面你需要重写一个方法,示例如下:
    protected override void OnCustomCommand(int command)
            {
                if (command == 100)
                {
                    StreamWriter sw = new StreamWriter(@"C:\xx.txt", true);
                    sw.WriteLine("command is "+command+"  " + DateTime.Now.ToString());
                    sw.Close();
                }
                else if (command == 200)
                {
                    StreamWriter sw = new StreamWriter(@"C:\xx.txt", true);
                    sw.WriteLine("command is "+command +" "+ DateTime.Now.ToString());
                    sw.Close();
                }
            }
    代码的其他部分就没有什么好说的了,点击这里<a target=blank src='https://files.cnblogs.com/FrameWork/WindowsApplication1.rar'>下载示例代码</a>
    转载注明出处尊重别人也是尊重自己
  • 相关阅读:
    HTML5 <meta> 标签属性,所有meta用法
    C#中导出数据到Excel表格中 逗号
    .net MVC 中缓存的使用 逗号
    MVC 过滤器 逗号
    .Net 分布式技术比较 逗号
    将DataTable导出为Excel (XML Spreadsheet).
    AntiTD
    三星WP7手机MANGO一分钟完美越狱
    SPGridView 研究笔记 Part 3 分组
    Silverlight 4 Binding Cheatsheet [转]
  • 原文地址:https://www.cnblogs.com/liubaolongcool/p/2059213.html
Copyright © 2020-2023  润新知