【window服务系列】C#.Net快捷创建window服务

2017/6/13 20:02:16 人评论 次浏览 分类:.NET


最近服务器的空间时不时就满了,导致站点都挂掉了,所以写了批处理文件,然后准备用window自带的自动任务计划去执行这个批处理,但是最终无法配置成功,在百度上也没有找到好的解决方案,所以一来气就自己写一个定时服务去调用这个批处理文件。


虽然也编码过不少的项目,但没什么机会写window服务,所以这次就刚好学下这个东西。其实C#.net的windows服务也挺简单的。

1.添加windows服务的项目




2.在项目中就出现了Service1.cs文件,在文件里面有OnStart和OnStop的方法,直接在里面实现逻辑即可。




3.创建服务安装程序,在Service1的设计视图上添加安装程序。就会在项目中创建一个ProjectInstaller.cs文件。





4.修改安装服务名
右键serviceInsraller1,选择属性,将ServiceName的值改为你所需要的服务名称。这个名称是会出现在windows服务管理的服务的列表里面的。
其中如果需要对服务进行描述,可以在Description 添加描述。(Name)这个值不用改动,这个是内部的标识,所以默认就行了。



5.修改安装的权限。
右键serviceProcessInsraller1,选择属性,这里默认是User的方式,如果是使用User的模式,那么在启动服务的时候就要输入用户名和密码,所以这里将Account的值改为LocalSystem。


如果选择了User的话,在启动的时候是这样的


6.检查App.config
这一步很关键,这里会导致后面一大堆的问题,所以这里先跟大家说下,我的下一篇文章专门说这个问题。
检查App.config。如果Vs2012 集成了.NETFramework4.5的话,默认是使用4.5版本的。App.config是这样。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

可以看出sku=".NETFramework,Version=v4.5"。这样子你在本地调试或者本地安装的时候正常的,因为你本地有安装了.NETFramework4.5。如果你在别的电脑或者服务器去安装这个服务的时候会发现。服务安装失败,无法正常启动,然后你在手动

所以这里,如果不是一定要用到.NETFramework4.5的,就可以在App.config这里修改下为:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />


7.至此,已经用C#.net写好了一个windows的服务了。接下来就是调试或者安装的问题。服务的可执行程序在bin目录下的Debug里面。





相关资讯

  • Windows环境下ASP.NET Core项目站点自启动运行

    ASP.NET Core可以通过 IIS站点发布 ,也可以通过自运行启动站点。也就只要安装了dotnet (.net core SDK )就可以自启动网站,不需要依赖IIS。

    2018/11/11 18:00:56
  • VS2017环境与.NET Core SDK下载安装

    都2018年了,如果是VS2015的,还是直接升级到VS2017吧。首先先安装.NET Core SDK,,然后再安装 VS2017。

    2018/7/10 22:57:35
  • VS2015中的.NET Core SDK下载与安装搭建Asp.net core开发环境

    VS2015时没有自带ASP.NET Core(VS2017是自带Core的,只要在安装的时候选择安装core跨平台即可),如果要使用.NET Core的开发环境就需要单独安装.NET Core SDK。下面我们介绍是在VS2015的环境下安装.NET Core SDK的步骤。

    2018/7/10 21:36:05
  • 【window服务系列】C#.Net的window服务的调试

    window service 创建成功之后就可以进行调试了。1.安装并运行服务这里不详细说。可以用installutil.exe或者 netstart。运行之后,服务程序的就是运行在进程中。2.附加到进程。这里不能直接运行启动调试(F5)。选择对应的服务程序进行附加。3.添加调试代码。因为我们要启动了服…

    2017/6/15 20:08:59