接Window服务(二)
接Window服务(一)
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服务(二)相关推荐
- window 服务(二)
window 服务(二) 接Window服务(一) ServiceController方法调用 public partial class Service1 : ServiceBase { public ...
- window 服务(一)
windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境特别适合,它没有用户界面,不会产生任何可视输出,任何用户输出都回被写进windows事件日志.计算机启动时,服务会自动开始 ...
- ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】
ASP.NET Core微服务(二)--[ASP.NET Core Swagger配置]: 环境:win10专业版+vs2019+sqlserver2014/2019 ASP.NET Core微服务( ...
- 19.浏览器Window服务($window)
转自:https://www.cnblogs.com/best/tag/Angular/ 引用浏览器的window对象.默认浏览器的window是全局的根对象. 示例代码: 1 <!DOCTYP ...
- C# 文件路径-Window服务
//取服务安装路径 public System.String Get_WindowService_Path() { System.String str_Path = System.String.Emp ...
- C#2.0 编写window服务
C#2.0 编写window服务(msdn) 注意 Visual Studio 标准版中不提供"Windows 服务"模板及相关功能.有关更多信息,请参见 Visual Studi ...
- 内网穿透-利用frp进行远程桌面控制(window服务端,window客户端)
内网穿透-利用frp进行远程桌面控制(window服务端,window客户端) 参考链接 https://blog.csdn.net/weixin_38416696/article/details/1 ...
- window服务是什么?
引言:window服务,就是一个对象或说一个变量(结构),里面存放了控制某一个进程(程序)启动或是停止等的信息. 一个服务首先是一个Win32可执行程序,或者是是rundll32.exe来运行一个.d ...
- 如何把Asp.NetCore部署成window服务
在window上部署Asp.netcore时,当不想使用IIS时,使用双击启动就会出现一个黑色的窗体,总感觉会不经意间给关闭掉.这时候就想如果可以生成winserver,这样就可以避免掉,也可以使崩溃 ...
最新文章
- R语言使用lm构建线性回归模型、并将目标变量对数化实战:模型训练集和测试集的残差总结信息(residiual summary)、模型训练(测试)集自由度计算、模型训练(测试)集残差标准误计算
- 第二课时之python认识
- C++ Primer 5th笔记(chap 16 模板和泛型编程)函数模板显式实参
- 【MySQL】在Windows下更改datadir
- 人工智能技术在银行客服中心的应用风险
- 简单说说JAVA的String和byte[]的关系
- javascript 复选框(checkbox)全选/全不选/反选
- 一阶系统开环传递函数表达式_自动控制总结:第五章、线性系统的校正方法
- 「AI产品」产品小姐姐分析抖音背后的计算机视觉技术
- vscode编写C++代码出现collect2.exe: error: ld returned 1 exit status问题的解决方案
- vue乱码图片流显示图片_vue下载二进制流图片操作
- 我的印度IT之都清奈之行
- 网页设计之CSS3精要
- 在输入框加入搜索图标的问题
- python2 x和python3 x_python2.x 和python3.x 哪个比较好?老男孩Python
- Nexus 05 第二种方式 使用Jenkins Nexus插件上传制品
- 鲜为人知的PCB抄板常识,您了解多少?
- mathcad入门一
- 基于时频变换的脑波信号(EEG)处理方法
- 2008最佳显微照片公布
热门文章
- Netty是个啥?简单来说就这!
- 日志系统新贵Loki,确实比笨重的ELK轻
- 除了不要 SELECT * ,数据库还有哪些技巧
- 我的读论文经验总结!
- 提高 GPU 训练利用率的Tricks
- 第一篇学术演讲准备两个月,去了谷歌却做不了深度学习,听Facebook田渊栋谈人生挑战与选择...
- 【学术前沿】26 亿参数量,水平接近人类,Google 的开放领域聊天机器人意义何在?...
- CNN是靠什么线索学习到深度信息的?——一个经验性探索
- 图解:轻松看懂机器学习十大常用算法
- Python打印json文件,实现输出