接Window服务(一)

ServiceController方法调用

 1  public partial class Service1 : ServiceBase
 2  {  3 public Service1()  4  {  5  InitializeComponent();  6 this.AutoLog = true;  7  }  8 protected override void OnStart(string[] args)  9  { 10 // TODO: 在此处添加代码以启动服务。 11 string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "启动"; 12  WriteLog(state); 13 ServiceController[] sc = ServiceController.GetDevices(); 14 string str = ""; 15 for (int i = 0; i < sc.Length; i++) 16  { 17 WriteLog(sc[i].ServiceName + @"\t" + sc[i].DisplayName + @"\t" + sc[i].Status); 18  } 19 WriteLog(" "); 20 ServiceController[] scArr = ServiceController.GetServices(); 21 for (int i = 0; i < scArr.Length; i++) 22  { 23 WriteLog(scArr[i].ServiceName + "\t" + scArr[i].DisplayName + "\t" + scArr[i].Status); 24  } 25 ServiceController s = new ServiceController(); 26 s.ServiceName = "Sina"; 27  s.Stop(); 28  } 29 protected override void OnStop() 30  { 31 // TODO: 在此处添加代码以执行停止服务所需的关闭操作。 32 string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "停止"; 33  WriteLog(state); 34  } 35 private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 36  { 37 WriteLog(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")); 38  } 39 public void WriteLog(string str) 40  { 41 using (StreamWriter sw = File.AppendText(@"c:\service.txt")) 42  { 43  sw.WriteLine(str); 44  sw.Flush(); 45  } 46  } 47 }

ServiceController属性

属性   描述    
CanPauseAndContinue 表示服务是否可以停止
CanShutDown 表示服务在系统关闭时是否可以得到通知,CanStop表示服务器是否可以被停止
DependentServices 表示与服务相关联的设备
DisplayName 表示服务控制器所绑定的名称
MachineName 表示服务所在的计算机名称
ServiceName 表示绑定的服务名称
ServiceType 表示控制器所引用的服务类型
ServicesDependedOn   表示服务所依赖ude服务集合Status表示控制器所引用的服务状态

ServiceInstaller类

ServiceInstaller的属性

属性   描述
DisplayName 显示名称
ServiceName 表示服务名称,这个名称必须与Installer将要安装的windows服务名称相同
ServiceDependOn 服务所要用到的其服务名称的一个数组
StartType 表示所安装服务的启动特性,可以为Automatic,Manual或Disable,默认为Manual

ServiceInstaller事件

方法 事件
AfterInstaller() 调用Install方法后发生
AfterRollback() 调用Rollback后发生
AfterUninstall() 调用Uninstall方法后发生
BeforeInstall() 调用Install方法前发生
BeforeRollback() 调用Rollback方法前发生
BeforeUninstall() 调用Uninstall方法前发生
Committed() 调用Commit方法后发生
Committing() 调用Commit方法前发生

ServiceProcessInstaller类

用于安装ServiceBase继承的windows服务,它与一个可执行程序中的所有服务所做基本工作相同

属性

属性 描述
Account 运行服务的当前用户账号  
HelpText   在服务安装选项中给出的帮助信息
Password   运行服务的当前账号密码
UserName   运行服务的当前账号用户名

吊死windows服务

1,日志调试法

2,附加进程断电调试法

步骤:

vs打开MySerivceLog项目

在管理工具-〉服务里面启动MyServiceLog服务

单击vs的调试 -〉附加到进程,如下图

在"可用进程“列表中,选中你要调式的服务的可执行文件名

单击 ”附加“按钮,即可进入调试状态

在timer1_Elapsed方法里设置一个断点,然后等它执行,服务执行到该处时候会自动启动断点。

另外,定时服务可能会定时的访问本域或者非本域的页面,

解决办法用WebClient

1  WebClient client = new WebClient();
2  string uri = "http://127.0.0.1/rss/sina.aspx"; 3 byte[] by = client.DownloadData(uri);

转载于:https://www.cnblogs.com/ChineseMoonGod/p/5545657.html

接Window服务(二)相关推荐

  1. window 服务(二)

    window 服务(二) 接Window服务(一) ServiceController方法调用 public partial class Service1 : ServiceBase { public ...

  2. window 服务(一)

    windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境特别适合,它没有用户界面,不会产生任何可视输出,任何用户输出都回被写进windows事件日志.计算机启动时,服务会自动开始 ...

  3. ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】

    ASP.NET Core微服务(二)--[ASP.NET Core Swagger配置]: 环境:win10专业版+vs2019+sqlserver2014/2019 ASP.NET Core微服务( ...

  4. 19.浏览器Window服务($window)

    转自:https://www.cnblogs.com/best/tag/Angular/ 引用浏览器的window对象.默认浏览器的window是全局的根对象. 示例代码: 1 <!DOCTYP ...

  5. C# 文件路径-Window服务

    //取服务安装路径 public System.String Get_WindowService_Path() { System.String str_Path = System.String.Emp ...

  6. C#2.0 编写window服务

    C#2.0 编写window服务(msdn) 注意 Visual Studio 标准版中不提供"Windows 服务"模板及相关功能.有关更多信息,请参见 Visual Studi ...

  7. 内网穿透-利用frp进行远程桌面控制(window服务端,window客户端)

    内网穿透-利用frp进行远程桌面控制(window服务端,window客户端) 参考链接 https://blog.csdn.net/weixin_38416696/article/details/1 ...

  8. window服务是什么?

    引言:window服务,就是一个对象或说一个变量(结构),里面存放了控制某一个进程(程序)启动或是停止等的信息. 一个服务首先是一个Win32可执行程序,或者是是rundll32.exe来运行一个.d ...

  9. 如何把Asp.NetCore部署成window服务

    在window上部署Asp.netcore时,当不想使用IIS时,使用双击启动就会出现一个黑色的窗体,总感觉会不经意间给关闭掉.这时候就想如果可以生成winserver,这样就可以避免掉,也可以使崩溃 ...

最新文章

  1. R语言使用lm构建线性回归模型、并将目标变量对数化实战:模型训练集和测试集的残差总结信息(residiual summary)、模型训练(测试)集自由度计算、模型训练(测试)集残差标准误计算
  2. 第二课时之python认识
  3. C++ Primer 5th笔记(chap 16 模板和泛型编程)函数模板显式实参
  4. 【MySQL】在Windows下更改datadir
  5. 人工智能技术在银行客服中心的应用风险
  6. 简单说说JAVA的String和byte[]的关系
  7. javascript 复选框(checkbox)全选/全不选/反选
  8. 一阶系统开环传递函数表达式_自动控制总结:第五章、线性系统的校正方法
  9. 「AI产品」产品小姐姐分析抖音背后的计算机视觉技术
  10. vscode编写C++代码出现collect2.exe: error: ld returned 1 exit status问题的解决方案
  11. vue乱码图片流显示图片_vue下载二进制流图片操作
  12. 我的印度IT之都清奈之行
  13. 网页设计之CSS3精要
  14. 在输入框加入搜索图标的问题
  15. python2 x和python3 x_python2.x 和python3.x 哪个比较好?老男孩Python
  16. Nexus 05 第二种方式 使用Jenkins Nexus插件上传制品
  17. 鲜为人知的PCB抄板常识,您了解多少?
  18. mathcad入门一
  19. 基于时频变换的脑波信号(EEG)处理方法
  20. 2008最佳显微照片公布

热门文章

  1. Netty是个啥?简单来说就这!
  2. 日志系统新贵Loki,确实比笨重的ELK轻
  3. 除了不要 SELECT * ,数据库还有哪些技巧
  4. 我的读论文经验总结!
  5. 提高 GPU 训练利用率的Tricks
  6. 第一篇学术演讲准备两个月,去了谷歌却做不了深度学习,听Facebook田渊栋谈人生挑战与选择...
  7. 【学术前沿】26 亿参数量,水平接近人类,Google 的开放领域聊天机器人意义何在?...
  8. CNN是靠什么线索学习到深度信息的?——一个经验性探索
  9. 图解:轻松看懂机器学习十大常用算法
  10. Python打印json文件,实现输出