当前位置: 首页 > news >正文

C#封装服务

C#封装服务

  1. 新建服务项目;
  2. 重构 OnStart 和 OnStop
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;namespace WatchDogService
{/// <summary>/// 守护进程/// </summary>public partial class WatchDogService : ServiceBase{//日志实例private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);public WatchDogService(){InitializeComponent();}/// <summary>/// 服务必须至少重写 OnStart 和 OnStop 才有用。/// </summary>/// <param name="args"></param>protected override void OnStart(string[] args){logger.Info("log4net start");}protected override void OnStop(){}}
}
  1. 添加安装服务
    在这里插入图片描述
  2. 问题处理:

安装后运行会出现启动失败:

  • 当我们直接按F5或者其他方式直接运行项目时,会提示:"无法从命令行或调试程序启动服务。必须首先安装 Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务管理工具或 NETSTART命令启动它。
    在这里插入图片描述
  • 安装installutil.exe
    1)确定平台版本:
    前提注意:如果你设置的目标平台是x64,打开的目录会不一样,不然导致服务运行不起来。可以右击项目名,点击【属性】——>【生成】——>【目标平台】查看。
    在这里插入图片描述

2)根据版本选择相应地址:

x86版本,复制这个地址:C:\Windows\Microsoft.NET\Framework\v4.0.30319
x64版本,复制这个地址: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
不然会报类似这种错误在初始化安装时发生异常: System.BadImageFormatException: 未能加载文件或程序集…

3)添加环境变量:

然后我们把上面的地址(根据自己的环境选择)添加到环境变量中: 1)点击【电脑】——>【属性】——>【高级系统设置】
2)点击【环境配置】,在下方的"系统变量"中选中”path“,点击【编辑】 3)点击【新建】,输入上文的地址:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319

cmd输入这个命令【InstallUtil】,如果是下面这样的内容说明成功了。
在这里插入图片描述
4)重新生成解决方案。
在这里插入图片描述

  1. 安装服务

以管理员身份运行cmd命令,然后安装服务:
1)查看生成服务的路径
在这里插入图片描述
2)安装服务:
在这里插入图片描述

  1. 运行服务

打开服务管理器,找到要启动的服务,然后右击启动服务。
在这里插入图片描述
启动后可以看到日志也有了:
在这里插入图片描述

  1. 卸载服务,可以运行这个命令:
InstallUtil /u 项目启动执行文件全路径:InstallUtil /u D:\项目演示临时保存\MyDemoService\MyDemoService\bin\Debug\MyDemoService.exe

在这里插入图片描述

  1. 服务命令:
1、安装服务:InstallUtil 项目启动执行文件全路径
2、启动服务:net start 服务名
3、停止服务:net stop 服务名
4、卸载服务:InstallUtil /u 项目启动执行文件全路径

相关文章:

C#封装服务

C#封装服务 新建服务项目&#xff1b;重构 OnStart 和 OnStop using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using S…...

手写Vue3源码

Vue3核心源码 B站视频地址&#xff1a;https://www.bilibili.com/video/BV1nW4y147Pd?p2&vd_source36bacfbaa95ea7a433650dab3f7fa0ae Monorepo介绍 Monorepo 是管理项目代码的一种方式&#xff0c;只在一个仓库中管理多个模块/包 一个仓库可以维护多个模块&#xff0c;…...

如何无需重复输入FTP信息来安装WordPress主题和插件

WordPress作为一个广受欢迎的内容管理系统&#xff0c;提供了丰富的主题和插件来扩展网站的功能和外观。然而&#xff0c;许多用户在安装这些主题和插件时&#xff0c;经常遇到需要重复输入FTP信息的麻烦。幸运的是&#xff0c;有几种方法可以解决这个问题&#xff0c;让安装过…...

开发安全之:JSON Injection

Overview 在 XXX.php 的第 X 行中&#xff0c;responsemsg() 方法将未经验证的输入写入 JSON。攻击者可以利用此调用将任意元素或属性注入 JSON 实体。 Details JSON injection 会在以下情况中出现&#xff1a; 1. 数据从一个不可信赖的数据源进入程序。 2. 将数据写入到 …...

各种Linux版本安装Docker

文章目录 一、Ubuntu 20.04.61. 网卡和DNS配置2. Docker安装 二、CentOS Linux 7.91. 网卡和DNS配置2. Docker安装 三、Alibaba Cloud Linux 31. DNS配置2. repo说明3. Docker安装 四、验证是否安装成功 一、Ubuntu 20.04.6 1. 网卡和DNS配置 /etc/netplan 找到 *.yaml 文件 …...

git中合并分支时出现了代码冲突怎么办

目录 第一章、Git代码冲突介绍1.1&#xff09;什么是Git代码冲突①git merge命令介绍②代码冲突原因 1.2&#xff09;提示代码冲突的两种情况①本地不同分支的文件有差异时&#xff1a;②本地仓库和git远程仓库的文件有差异时&#xff1a; 1.3&#xff09;解决合并时的代码冲突…...

什么是防火墙?

目录 什么是防火墙&#xff0c;为什么需要防火墙&#xff1f;防火墙与交换机、路由器对比防火墙和路由器实现安全控制的区别防火墙的发展史1989年至1994年1995年至2004年2005年至今 什么是防火墙&#xff0c;为什么需要防火墙&#xff1f; “防火墙”一词起源于建筑领域&#x…...

tui.calender日历创建、删除、编辑事件、自定义样式

全是坑&#x1f573;&#xff01;全是坑&#x1f573;&#xff01;全是坑&#x1f573;&#xff01;能不用就不用&#xff01; 官方文档&#xff1a;https://github.com/nhn/tui.calendar/blob/main/docs/en/apis/calendar.md 实例的一些方法&#xff0c;比如创建、删除、修改、…...

OpenHarmonyOS-gn与Ninja

GN语法及在鸿蒙的使用 [gnninja学习 0x01]gn和ninja是什么 ohos_sdk/doc/subsys-build-gn-coding-style-and-best-practice.md GN 语言与操作 一、gn简介 gn是generate ninja的缩写&#xff0c;它是一个元编译系统&#xff08;meta-build system&#xff09;,是ninja的前端&am…...

Docker部署Traefik结合内网穿透远程访问Dashboard界面

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…...

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题二 理论题

竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;180 分钟&#xff0c;300 分&#xff09;。 2.第二阶段&#xff1a;模块二…...

从代码到项目管理:程序员的职业跃迁与PMP认证之路

哈喽&#xff0c;我是eleven,软件工程专业毕业&#xff0c;工作六年多的时间从事过测试岗、研发岗、项目经理岗。一路走来一直按照自己的职业规划向前发展&#xff0c;每一步都成功转型&#xff0c;目前已顺利拿到PMP项目管理资格认证。希望能通过自己的经验给大家带来些许帮助…...

空间形状对结构加法产物的影响

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 有2个点被固定在一个5*5的平面内&#xff0c;在这个平面内还有2个点在随机的运动。最终这4个点是如何分布的&#xff1f; 1 - - - 5 - - 1 9 - - 1 - 13 - - - 1 1 1 - 1 …...

构建高效外卖系统:技术实践与代码示例

外卖系统在现代社会中扮演着重要的角色&#xff0c;为用户提供了便捷的用餐解决方案。在这篇文章中&#xff0c;我们将探讨构建高效外卖系统的技术实践&#xff0c;同时提供一些基础的代码示例&#xff0c;帮助开发者更好地理解和应用这些技术。 1. 技术栈选择 构建外卖系统…...

HCIP-BGP选路实验

一.实验拓扑图 二.详细配置 R1 interface GigabitEthernet0/0/0 ip address 12.1.1.1 255.255.255.0interface LoopBack0 ip address 1.1.1.1 255.255.255.0interface LoopBack1 ip address 10.1.1.1 255.255.255.0bgp 1 router-id 1.1.1.1 peer 12.1.1.2 as-number 2ipv4-fa…...

线性表--顺序表

目录 1.什么是顺序表 2.动态顺序表实现 2.1动态顺序表结构体 2.2初始化 2.3打印验证函数 2.4判断是否扩容&#xff0c;按需扩容 2.5头插/尾插 2.6头删/尾删 2.7指定位置插入数据/指定位置删除数据 3.动态顺序表代码 1.什么是顺序表 线性表是n个具有相同特性的数据元素的…...

前端面试题:节流和防抖

节流和防抖都是通过降低事件执行的频率而达到节省资源的效果 节流 一段时间只执行一次,多少秒之后获取验证码、resize 事件和scroll 事件等 类似王者荣耀中的传送,一段时间内只能传送一次,具体实现如下: function throttle(fn, delay) {let lastTime = 0;return functi…...

网络工程师学习笔记——交换机路由器 数据传输

交换机和路由器是数据通信最核心&#xff0c;也是所有网工最熟悉的设备。今天学习&#xff1a;交换机%路由器数据传输过程。 目录 一、交换机 1、交换机原理 2、交换机数据传输过程 3、交换机基本原理配置命令 二、路由器 1、路由器原理 2、路由器数据传输过程 3、静态…...

【论文笔记】A Survey on 3D Gaussian Splatting

原文链接&#xff1a;https://arxiv.org/abs/2401.03890 1. 引言 NeRF在计算效率和可控性上具有局限性&#xff0c;这导致了3D高斯溅射&#xff08;3D GS&#xff09;的出现&#xff0c;重新定义了场景表达和渲染。 3D GS通过引入新的场景表达技术&#xff0c;用大量的3D高斯…...

项目实战————苍穹外卖(DAY11)

苍穹外卖-day11 课程内容 Apache ECharts 营业额统计 用户统计 订单统计 销量排名Top10 功能实现&#xff1a;数据统计 数据统计效果图&#xff1a; 1. Apache ECharts 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#x…...

Unity3D物体缩放避坑指南:为什么你的Transform.localScale总是不生效?

Unity3D物体缩放避坑指南&#xff1a;为什么你的Transform.localScale总是不生效&#xff1f; 在Unity3D开发中&#xff0c;Transform.localScale属性看似简单&#xff0c;却隐藏着许多让开发者头疼的陷阱。不少开发者都遇到过这样的场景&#xff1a;明明代码里设置了localScal…...

基于springboot的论坛网站设计与实现.7z(源码+论文+开题报告)

[点击下载链接》》》] 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了论坛网站的开发全过程。通过分析论坛网站管理的不足&#xff0c;创建了一个计算机管理论坛网站的方案。文章介绍了论坛网站的系统分析部分&…...

如何3步上手语音转换:Retrieval-based Voice-Conversion-WebUI完整实战指南

如何3步上手语音转换&#xff1a;Retrieval-based Voice-Conversion-WebUI完整实战指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型&#xff01; 项目地址: https://gitcode.com/GitHub_Trending/re/R…...

XC7Z100与GMSL FMC采集卡在自动驾驶视觉系统中的高效集成方案

1. XC7Z100与GMSL FMC采集卡的核心价值 在自动驾驶视觉系统中&#xff0c;图像采集的实时性和可靠性直接决定了系统的性能上限。XC7Z100 FPGA与GMSL FMC采集卡的组合&#xff0c;就像给系统装上了"超清眼睛"和"高速神经"。我曾参与过一个夜间自动驾驶项目&…...

3分钟解决NCM格式难题:ncmdumpGUI让你的音乐重获自由 [特殊字符]

3分钟解决NCM格式难题&#xff1a;ncmdumpGUI让你的音乐重获自由 &#x1f3b5; 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐的NCM格式文件…...

远程收款好用服务商

在数字化支付日益普及的今天&#xff0c;远程收款成为许多商家和创业者的重要需求。然而&#xff0c;由于各种风控限制&#xff0c;微信支付、支付宝等主流支付平台在异地收款时常常出现异常提示或风险拦截&#xff0c;给用户带来了不少困扰。本文将对比分析几家提供远程收款服…...

macOS效率工具:Dozer极简菜单栏管理方案

macOS效率工具&#xff1a;Dozer极简菜单栏管理方案 【免费下载链接】Dozer Hide menu bar icons on macOS 项目地址: https://gitcode.com/gh_mirrors/do/Dozer 在现代工作环境中&#xff0c;macOS用户常常面临菜单栏图标过多导致的视觉混乱问题。随着各类应用程序的安…...

从F1 90到62 F1 90:用Wireshark和CANoe‘解剖’一次完整的UDS 0x22数据读取会话

从F190到62F190&#xff1a;用Wireshark和CANoe解剖UDS 0x22数据读取会话 当你第一次在Wireshark中看到22服务请求和62响应报文时&#xff0c;那些十六进制字节可能就像天书一样难以理解。但正是这些看似杂乱的数据流&#xff0c;承载着现代汽车电子系统最核心的诊断信息交换。…...

高效掌控暗影精灵设备:开源工具OmenSuperHub的四大突破

高效掌控暗影精灵设备&#xff1a;开源工具OmenSuperHub的四大突破 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 告别原厂软件臃肿困扰&#xff0c;体验纯净硬件控制新方式 OmenSuperHub是一款专为惠普暗影精灵笔记本打造…...

Git GUI里那些小箭头和蓝点到底是啥?一份给新手的保姆级图解指南

Git GUI可视化指南&#xff1a;解码提交历史中的符号与分支拓扑 第一次打开Git GUI的提交历史视图时&#xff0c;那些彩色线条、小蓝点和神秘箭头就像天书般令人困惑。作为从SVN过渡到Git的开发者&#xff0c;我曾盯着这些符号发呆半小时——直到发现它们其实是项目历史的可视化…...