热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何构建和部署C#Windows服务应用程序

本文介绍了如何从零开始构建和部署C#Windows服务应用程序。通过详细步骤和代码示例,帮助读者掌握创建、配置和部署Windows服务的关键技术点,适合初学者和有经验的开发人员参考。

  其实我也是第一次在博客园写博客,看到那些高手说自己要多动手写博客,于是乎自己也尝试尝试。  

 废话不多说。这几天在研究window service,通过查找各种大神写的博客,我终于成功的自己写出来了。

下面是创建window service的基本思路:

  1、打开vs,创建window服务项目。

    

项目新建完成。

  2、双击打开Service1,然后右击“添加安装程序”,程序会添加一个 “ProjectInstaller.cs”,双击打开设计页面,会看到一个     叫“serviceInstaller”和“serviceProcessInstaller1”。

首先选择第一个serviceInstaller右击或者F4选择属性,填入DispalyName属性,这是服务安装到计算机上显示的名称,Description是备注,StartType是服务安      装之后的启动方式,Manual是手动,Automatic是自动,Disabled是禁用,这里选手动。

      第二选择serviceProcessInstaller1右击选择属性,选择Account   选择 “LocalSystem”

  3、打开Service1的后台代码会有两个方法OnStart和OnStop分别是服务开启和关闭的方法。

  

public static void WriteLog(string str){if (!File.Exists(@"f:\service.txt")) {File.Create(@"f:\service.txt");}using (StreamWriter sw = File.AppendText(@"f:\service.txt")){sw.WriteLine(str);sw.Flush();}}protected override void OnStart(string[] args){string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "启动";WriteLog(state); }protected override void OnStop(){string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "停止";WriteLog(state); }

这段代码会在服务开启和停止的时候记录在txt文件里面,写完之后重新生成项目。

4、接下来就是安装服务。在桌面新建一个文本文档。

“%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\Users\Topsmoon\Desktop\Test\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe  这是你生成的exe文件的地址

pause

保存之后,重命名为启动服务.bat;

还有就是新建卸载服务.bat

"%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u C:\Users\Topsmoon\Desktop\Test\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe

pause

"

两个新建完成之后,使用管理员的身份运行启动服务的文件,然后服务就会部署到你的机器上面,右键我的电脑->管理->看服务里面吧。

 

 

 

好了,这是我第一次这博客,写得我自己都看不下去,高手勿喷。谢谢

 


转:https://www.cnblogs.com/xiaolin2013/p/3571749.html



推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
author-avatar
訫鈊衅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有