[转]在windows service中使用timer】的更多相关文章

本文转自:http://blog.csdn.net/sharpnessdotnet/article/details/7637180 一定要使用System.Timers.Timer timer 而不是System.Windows.Forms.Timer,否则就悲剧了.public partial class InvkGpsWinService : ServiceBase     {         System.Timers.Timer timer = new System.Timers.Tim…
在Windows Service中使用Threading.Timer时需要注意回收池问题 Threading.Timer是基于线程池的,系统会对其进行垃圾回收. 当Threading.Timer定义在OnStart方法中时,当服务启动完成后. 系统对其中定义的对象进行回收[回收是不定时进行,所以可能会 运行一段时间然后突然就不运行的情况发生],这时候会把在OnStart 方法的timer进行回收,有可能会造成服务假死的情况.解决办法也很简单 定义到类上就好,如 private System.Th…
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:正在构思一个中间件的设计,考虑是否既可以使用最新的技术,也可以兼顾传统的部署模式.所以有了这个问题(包括衍生问题)的提出和解决方法. 托管到Windows Service中 众所周知,ASP.NET Core采用了和传统ASP.NET不同的托管和HTTP处理方式,即把服务器和托管环境完全解耦. ASP.NET Core内置了两个HTTP服务器实现,一个是基于libuv实现的Kestrel(支持跨…
C# windows服务程序中的Timer控件的使用问题是如何解决的呢? 今天和同事一起研究了下C# windows服务程序中的Timer控件的使用的写法. 我们在建立一个C# windows服务程序后,要用到计时器的话一般都会想到Timer控件,于是到工具器把Timer控件拉过来,双击写事件,设置时间,哇,成功了.... 但服务一跑起来,唉,怎么回事,时间到了怎么没有执行事件呢? 后来,我找很多资料才知道,这个Timer控件是winForm下的,不能用在C# windows服务程序中. 怎么办…
1. 创建WCF服务 在vs2010中创建WCF服务应用程序,会自动生成一个接口和一个实现类:(IService1和Service1) IService1接口如下:   using System.Runtime.Serialization;   using System.ServiceModel;   using System.ServiceModel.Web;   using System.Text;   namespace WcfService   {   [ServiceContract]…
第一部分.自托管 一.依赖.Net Core环境 修改 project.json 文件内容,增加发布时需要包含文件的配置内容(NetCore2.0版本不需要任何设置,NetCore2.0开始彻底放弃project.json,全面改回.csproj,详见难以接受你的改变:从project.json到.csproj) 1 { 2 "version": "1.0.0-*", 3 "testRunner": "xunit", // 设…
托管到Windows Service中 众所周知,ASP.NET Core采用了和传统ASP.NET不同的托管和HTTP处理方式,即把服务器和托管环境完全解耦. ASP.NET Core内置了两个HTTP服务器实现,一个是基于libuv实现的Kestrel(支持跨平台),一个是基于Windows HTTP Server API实现的WebListener(仅支持Windows). 而托管环境可以和服务器不相关,一般情况是自托管,或者托管到IIS/IISExpress中(此处的IIS仅作为反向代理…
在上一篇<.NET 6学习笔记(2)--通过Worker Service创建Windows Service>中,我们讨论了.NET Core 3.1或更新版本如何创建Windows Service.本篇我们将在此基础上,托管ASP.NET Core程序并指定端口.首先让我们创建一个ASP.NET Core Web App,当然Web Api类型也是可以的.通过NuGet来安装Microsoft.Extensions.Hosting.WindowsServices.该库提供了必要的UseWind…
昨天,组里一个小朋友告诉我,他写的报表生成服务中无法打开一个已经存在的Excel 2007文件,他的开发环境是Win7.Visual Studio .Net 2008(Windows Server 2008下同样存在此问题).比较奇怪的是,Excel Automation对象是可以实例化的,但是在执行Workbooks.Open时抛出异常如下: Microsoft Office Excel 不能访问文件“a.xls”. 可能的原因有: • 文件名称或路径不存在. • 文件正被其他程序使用. •…
用C#编写Windows Service时,执行轮询一般有两种方式,一种是用Timer,System.Timers或者是System.Thread下的,这种执行是按时间循环执行,缺点是也许上个执行还没有完成,又开始执行新的. 另一种方式是利用线程,在OnStart里单开一个线程去跑含有死循环结构的函数,这种方式的缺点是,对线程的控制困难,停止服务了,线程还有可能在执行,不过 .Net 4.0+ 给我们提供了 CancellationTokenSource,用来取消正在运行的线程(Task),代码…
最近做个windows 服务,功能是:定时执行一个任务:自动登录到一个网站后,点击相关网面上的按钮button. 在处理的过程中发现定时器老是不定时的失效,失效时间没有规律. 由于刚开始处于测试阶段,所以只简单的log一下到时间间隔后是否执行了定时器定时Elapsed事件:结果出错了,每大约相隔几个小时就没有log记录了,是怎么回事呢? 为什么运行一段时间后(一般几个小时到十几个小时)定时器就不工作了,过了一段时间后又会自动工作了. 也就是说   log.Info("Do something o…
问题: When installing Windows services there are two options for automatically starting a Windows service on Windows startup. One is Automatic, and the other is Automatic (Delayed start). What is the difference between these two in detail? 回答: In short…
直接贴代码了: 首先我们可以把所有的 Job 放到一个单独的 DLL 中,好处是可以共享这些业务 Job.比如我们新建一个 QuartzNetDemo.WinService.Jobs 的类库. 然后,我们再先定义一个 WriteTextToFileJob 的任务: public class WriteTextToFileJob : IJob { // Fields private static readonly string TypeName = typeof(WriteTextToFileJo…
之前的一篇文章讲述了如何通过 Quartz .NET 实现 Timer Job (http://www.cnblogs.com/mingmingruyuedlut/p/8037263.html) 在此基础上如何将实现的Timer Job注册成为Windows Service,请看如下步骤: 1):在VS中创建Windows Service的工程 2):继承 IJob 接口实现对文本文件的写值 using Quartz; using System; using System.Collections…
Cloud Service 中WebRole就相当与我们的WebSite,而WorkRole相当与我们在服务器上写了个Windows Service,站在高可用的角度上来讲,Cloud Service要优于WebSite,拿个例子来说,我们上传个数据,数据需要入库,通常website需要提交数据,等待响应,这个时候如果并发量大,系统响应时间会很长.如果使用Cloud Service就不存在这个问题,WebRole只负责把数据提交上来,而对数据的处理入库则可以提交给WorkRole来处理,中间可以…
参考地址:http://www.cnblogs.com/zhili/p/4039111.html 一.如何在Windows Services中寄宿WCF服务 第一步:创建Windows 服务项目,具体添加步骤为右键解决方案->添加->新建项目,在已安装模板中选择Windows 服务模板,具体如下图示所示: 第二步:添加Windows服务之后,修改对应的Service1.cs文件 using System; using System.Collections.Generic; using Syst…
多年前玩过一次windows service,觉得挺简单的. 这次工作要维护产品中的windows service,发现不是那么简单,vs附加调试器的窗体中无法找到windows service进程.刚开始怀疑服务的代码是不是有问题,结果做了一个demo,发现还是调试不了. 所以猜想跟win7有关系.与是在google中有can not debug windows service win7的关键字搜索,发现一个解决方案. http://stackoverflow.com/questions/10…
Windows Service(服务)  是运行在后台的进程 1.VS建立 Windows 服务(.NET Framework) 2.添加Timer 双击Service1.cs可以拖控件(System.Windows.Forms.Timer)这儿注意命名空间哦, 双击 trmer1 生成事件,修改事件方法如下: App.config: <appSettings> <add key="TimerExecTime" value="0001-01-01 10:07…
Aspnet Zero使用Windows service (Topshelf)来承载Quartz.net任务 网上有很多关于如何使用Topshelf创建ABP的Quartz windows服务,但很少(没有)有介绍如何配合Aspnet Zero使用的文章,本文记录集成过程,以供参考. 在官方Aspnet Zero模板解决方案中建立Console类型的项目,并安装以下buget package: Topshelf Abp.Quartz Abp.Castle.Log4Net Abp.AspnetCo…
Windows Service 项目引用了别的类库项目,别的项目用到了 Entity Framework(通过Nuget引入),但是我的 Windows Service 无法开启,于是我修改了 App.config,加入 EF 的配置信息后能开启,但是业务代码无法进入,通过日志发现错误: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlPro…
前言:Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用.还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务.本文就向大家介绍如何运用C#来创建.安装.卸载.调试Windows Service程序. 一.创建Windows服…
背景:        要学习使用一个新东西,我们必须知道他是个什么东西.对于我们此次研究的windows服务来说,他又是个什么东西,其实也没有什么高深的了. windows service概述: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过点击一下就直接可以运行,它有它特殊的启动方式.这些启动方式包括了自动启动和手动启动两种方式. 对于自动启动的Windows服务程序,它们在Windo…
1.在VS中建立windows service后,应该添加一个安装程序. 2.在默认的Service1.cs设计界面右键,添加安装程序,生成ProjectInstaller.包含两个类serviceProcessInstaller和serviceInstaller. 3.前者的属性Account一般应设为LocalSystem. 4.如需要计时器,不应使用winform的计时器,而是System.Timers.Timer. 于是在Service1.cs中 添加私有变量: private Syst…
Visual Studio.net 2010 Windows Service 开发,安装与调试 本示例完成一个每隔一分钟向C:\log.txt文件写入一条记录为例,讲述一个Windows Service 程序的开发,安装与调试     原程序,加文档示例下载 /Files/zycblog/SourceCode.rar 目录索引 1  开发工具 2  开发过程 3  安装 4  开发调试 5  注意事项 6  参考资料 1. 开发工具 1.1 Visual Stuo.net 2010 1.2 Wi…
写在前面 这几天在弄一个项目,需要定时抓取一些数据,当时也想直接用timer算了.因为之前也弄过这样的项目,但是一想,已经用过了,再去使用同一种思路,未免太乏味了.就换了一种新玩法.这里将之前看到的一篇文章中提出的一个思路,在这个项目中实践了一下,发现乐在其中. Quarzt.net [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe 这篇文章,给了一种好玩的方式,并且自己也实践了一下,而且也确确实实在项目中用到了. 简单一个demo,先熟悉如…
   功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间. 原理这些就不说了,三语两语说不清楚,直接贴一个实例.不能贴图片!!那个压缩文里面是word文档!!有图有真相 1.建立空白项目 2.添加创建windows服务需要的引用,选择System.ServiceProcess. 3.创建服务类,继承ServiceBase,类的源代码在后面. 4. 添加windows服务的安装类. (1)在类名或者解决方案中…
在实际项目开发过程中,会经常写一些类似定时检查,应用监控的应用.这类应用在windows平台通常都会写成window service程序. 在百度上搜索一下'c#开发windows service',基本都是使用VS windows服务的模板来开发,使用VS Attach到服务的进程来调试,使用InstallUtil工具来安装windows服务.还是有些麻烦的. 本文主要介绍一下使用Topshelf开源框架来创建windows服务,简单.方便和快捷.官方文档也很简单,花半个小时过一遍即可http…
前言 关于Windows服务创建和调试的文章在网络上的很多文章里面都有,直接拿过来贴在这里也不过仅仅是个记录,不会让人加深印象.所以本着能够更深刻了解服务项目的创建和调试过程及方法的目的,有了这篇记录. 目录 一.什么是Windows Service服务? 二.基于C#的Windows Service服务的创建.安装.卸载? 三.Windows Service服务开发过程中如何调试代码? 正文 一.什么是Windows Service服务? Microsoft Windows 服务(即,以前的…
前言:Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用.还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务. C#创建Windows服务的步骤: 1.创建Windows Service项目 从…
调试Windows Service 使用一般的调试方法调试不了Windows Servers,所以参考了一些调试方法 我服务源码中使用了Timer,注意不能使用工具箱内的Timer,用System.Timers.Timer timer = new System.Timers.Timer()代替; timer.Elapsed事件委托绑定的方法第三种方法调试的时候无法使用断点,不是timer不运行,目前不知道什么原因,所以调试时把代码放到OnStart()中调试. 默认服务名为Service1,改服…