除了通过.net提供的windows服务模板外,Topshelf是创建Windows服务的另一种方法。

  

  官网教程:http://docs.topshelf-project.com/en/latest/configuration/quickstart.html

优点:

    1.可以直接调试运行。

    2.命令更方便。

    3.Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono

下载:

  Install-Package Topshelf

  

开发:

  0.创建服务 1.安装 2.启动 3.停止 4.卸载 5.调试服务 6.监控服务

创建服务:

  1.使用Topshelf创建服务非常简单。构建任何一个class ,提供一个启动和停止的方法即可。

  2.本节使用System.Timers.Timer做定时任务处理

class MyService
{
readonly Timer timer = new Timer();
public MyService()
{
timer.Interval = ;
timer.Elapsed += (s, e) => File.AppendAllText("d:\\1.txt",DateTime.Now.ToLongTimeString()+"\r\n");
}
public void Start()
{
timer.Start();
}
public void Stop()
{
timer.Stop();
}
}

  当创建完一个服务后,需要配置指定服务和指定启动停止的方法。

class Program
{
static void Main(string[] args)
{
HostFactory.Run(x =>
{
//要配置的服务
x.Service<MyService>(c =>
{
c.ConstructUsing(name => new MyService());
c.WhenStarted(s => s.Start());
c.WhenStopped(s => s.Stop());
});
//服务的运行身份
x.RunAsLocalSystem(); x.SetDescription("服务描述");
x.SetDisplayName("显示名称");
x.SetServiceName("服务名称");
});
}
}

安装:

    a.cd 定位到程序目录.        b.程序以管理员身份运行        c.程序名 install

    

启动:

    start 程序名

停止:

  

    stop 程序名

卸载:

    uninstall 程序名

调试服务:

  直接运行,即可调试

监控:

使用ServiceController来获取服务状态或对服务进行控制。

这个类可以获取服务的状态,属性,对服务也可以进行启动,停止操作

代码下载:点击下载

[Solution] Microsoft Windows 服务(2) 使用Topshelf创建Windows服务的更多相关文章

  1. 使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  2. Topshelf创建Windows服务

    使用Topshelf创建Windows服务 概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps ...

  3. C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载(极速,简洁)

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

  4. 【第三方插件】使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  5. C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

  6. 使用Topshelf创建Windows服务[转载]

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  7. 使用Topshelf创建Windows 服务

    本文转载: http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html http://www.cnblogs.com/jys509/p ...

  8. 使用 Topshelf 创建 Windows 服务

    Ø  前言 C# 创建 Windows 服务的方式有很多种,Topshelf 就是其中一种方式,而且使用起来比较简单.下面使用 Visual Studio Ultimate 2013 演示一下具体的使 ...

  9. windows + SQL Server环境,创建ArcSDE服务

    ArcGIS for Server启用FeatureService需要ArcSDE和Geodatabase. 使用ArcSDE需要创建windows服务,ArcSDE只有命令行,所以只好阅读文档,找合 ...

随机推荐

  1. [C] tcharall(让所有平台支持TCHAR)v1.1。源码托管到github、添加CMake编译配置文件、使用doxygen规范注释

    作者:zyl910 v1.1版的改动如下—— 将源码上传到github. 调整目录结构. 添加CMake编译配置文件. 使用doxygen规范注释. 文件清单—— docs\ docs\images\ ...

  2. C++ 虚函数在基类与派生类对象间的表现及其分析

    近来看了侯捷的<深入浅出MFC>,读到C++重要性质中的虚函数与多态那部分内容时,顿时有了疑惑.因为书中说了这么一句:使用“基类之指针”指向“派生类之对象”,由该指针只能调用基类所定义的函 ...

  3. Skyline6.5系列覆盖三维地理信息产业上下游

    SkylineGlobe将于近日推出6.5 系列产品.该系列产品提供从产业链上游影像处理.中游二三维展示分析.下游具体业务应用等覆盖整个三维空间地理信息产业链的一体化.一站式产品与服务. Skylin ...

  4. asp.net 后台实现删除,划掉效果

    效果: name = "<S>" + fircon + "</br>" + "</S>"; 增加“< ...

  5. iOS中生成并导入基于Swift编程语言的Framework

    从iOS 8.0开始就引入了framework打包方式以及Swift编程语言.我们可以主要利用Swift编程语言将自己的代码打包成framework.不过当前Xcode 7.x在自动导入framewo ...

  6. UiAutomator源代码分析之UiAutomatorBridge框架

    上一篇文章<UIAutomator源代码分析之启动和执行>我们描写叙述了uitautomator从命令行执行到载入測试用例执行測试的整个流程.过程中我们也描写叙述了UiAutomatorB ...

  7. “You must not call setTag() on a view Glide is targeting” 解决

    报错原因大致是因为Glide加载的iamgeView调用了setTag()方法导致的错误, 因为Glide已经默认为ImageView设置的Tag. 解决办法:自定义一个Application,在里面 ...

  8. 提高c++性能的编程技术笔记

    需要时再创建对象,比如在类中用if new 而不是在构造函数里创建类的成员. 用char 指针而不是string可以节省构造和析构string的开销. 虚函数无法内联的性能损失.

  9. 删除数据库数据,自增id清理

    方法一:Delete Form 表名 方法二:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 D ...

  10. Java中删除文件、删除目录及目录下所有文件(转)

    原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...