服务windows服务+辅助角色服务

这篇具有很好参考价值的文章主要介绍了服务windows服务+辅助角色服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 1、vs2022新建一个windows服务项目

2、修改服务参数

(1)AutoLog: 是否将事件写入到windows的事件日志中。

(2)canpauseandContinue:服务是否可以暂停和继续

辅助角色服务,C#,个人开发

3、添加服务安装程序 在界面内右击鼠标 新建一个服务、新建后如下图:

辅助角色服务,C#,个人开发

4、选中serviceProcessInstaller1点右键,选择“属性”,打开serviceProcessInstaller1的属性面板:

Account:指示用来运行此服务的账户类型,默认选择User,修改为高权限的LocalSystem

辅助角色服务,C#,个人开发

 5、

选中serviceInstaller1点右键,选择“属性”,打开serviceInstaller1的属性面板

  • ServiceName:在Windows服务里面显示的名称
  • Description:在Windows服务里面显示的描述信息
  • StartType:指示启动此服务的方式和时间 Manual:手动启动 Automatic:自动启动
  • DelayedAutoStart:指示服务是否延时启动,默认false,改为True,则表示服务延时启动

二、安装和卸载Windows服务

1、在命令行下面执行“installutil+生成的可执行文件的路径”的命令进行安装

2、卸载Windows服务:

在命令行里面输入“installutil /u 可执行文件路径”命令,然后回车

服务安装步骤:

1、使用管理员权限运行CMD;

        备注:安装和卸载时我们都需要用到微软提供的工具InstallUtil.exe

        默认位置在:C:\Windows\Microsoft.NET\Framework

2、安装服务

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe D:\2.Package\c#\Text\WindowsService.FirstS\bin\Debug\WindowsService.FirstS.exe

 D:\2.Package\c#\Text\WindowsService.FirstS\bin\Debug 为应用程序的物理路径。

3、卸载服务

         卸载服务和安装服务的区别主要在 /u

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u D:\2.Package\c#\Text\WindowsService.FirstS\bin\Debug\WindowsService.FirstS.exe

卸载应用程序的路径:D:\2.Package\c#\Text\WindowsService.FirstS\bin\Debug

 注意:启动和终止服务可以封装成两个.bat 文件来进行注册和卸载服务。

4、启动服务指令如下:

        Net start ServiceName

        备注:如果需要跟随系统启动需要设置服务的启动方式为自动

5、终止服务指令如下:

        Net Stop ServiceName;

无法调试需要将当前程序附加到一个进程中

使用和调试服务程序时需要进行停止服务后然后在继续运行

如果封装成服务并且使用json配置文件,注意json的存放路径,如果设置

 var config = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("AppSettings.json", false, true).Build();

则必须将json文件放置到"C:\Windows\SysWOW64"目录下

三、使用Net6新建服务

        首先新建一个项目

辅助角色服务,C#,个人开发

完成之后,安装nuget包(一个是windows服务, 一个是linux服务)

Install-Package Microsoft.Extensions.Hosting.WindowsServices
Install-Package Microsoft.Extensions.Hosting.Systemd

项目完成后,打包生成。

work services项目介绍:

Worker Service是微软提供的一个项目模板,它继承于BackgroundService。在使用.NET Framework时,我们可以使用Windows Service来创建Windows服务,而在使用.NET Core及更高的.NET版本时,就可以使用Worker Service来取代Windows Service,以便创建跨平台服务。
项目创建成功后,windows会预设一个worker Service的模板,它主要文件为program.cs和worker.cs 提供了服务的启动入口,而work则是服务的具体功能实现。

打开program.cs可以看到 他使用了CreateHostBuilder方法返回了一个田间Worker类作为托管服务的host,然后调用它的Build方法生成实例并调用Run方法来运行该实例。整个Program.cs的结构与普通的控制台应用程序基本相同。

应用过程
接下来我们来使用Worker Service创建一个简单Demo服务,具体实现功能就是在一个日志文件中定时记录一些消息。

首先我们创建一个InfoLogWorker类,并使其继承于BackgroundService类,并将Program配置的服务改成InfoLogWorker。

可以看到,BackgroundService提供了三个虚方法和一个抽象方法,我们需要对StartAsync、StopAsync和ExecuteAsync三个方法进行重写。

其中StartAsync会在服务开启时被调用,而StopAsync则是在服务停止时被调用,ExecuteAsync是必须要被实现的方法,它定义了服务运行时需要执行的操作。

在重写完成这个三个方法之后,我们再创建一个ILogger的只读字段,并在构造函数中获取它的实例,之后将会使用它在调试时打印出我们需要的信息。然后我们再定义一个ServiceRunningMethod方法,用以定义服务运行时需要实现的具体功能。
 

注意:.UseWindowsService() //配置为Windows服务

workservice 中暂时不使用.json格式的配置i文件 使用。config的配置文件

部署为服务运行

使用bat脚本进行部署

install.bat

set current_path=D:\Package\Code\C#\6.service\Text\Learn.Text01\Learn.Text01\bin\Debug\net6.0\
sc create WorkerServiceDemo binPath= "D:\Package\Code\C#\6.service\Text\Learn.Text01\Learn.Text01\bin\Debug\net6.0\Learn.text01.exe"
sc description WorkerServiceDemo  "Text my server01"
sc config WorkerServiceDemo start= auto
sc start WorkerServiceDemo

unitstall.bat

sc stop WorkerServiceDemo
sc delete WorkerServiceDemo

异常:

        提示错误1053:服务没有及时响应或控制请求。(有可能没有安装。net运行环境)

修改如下:文章来源地址https://www.toymoban.com/news/detail-685344.html

.ConfigureServices(services =>
                {
                    var processModule = Process.GetCurrentProcess().MainModule;
                    if(processModule is not null) {
                        var pathtoExe = processModule.FileName;
                        var pathContetRoot = Path.GetDirectoryName(pathtoExe);
                        Directory.SetCurrentDirectory(pathContetRoot);

                    }
                    services.AddHostedService<Worker>();
                })

到了这里,关于服务windows服务+辅助角色服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过内网穿透,在Windows 10系统下搭建个人《我的世界》服务器公网联机

    今天和大家分享一下只需简单几步即可在windwos系统搭建我的世界服务器,并通过cpolar内网穿透工具将本地服务暴露到公网连接,实现与小伙伴一起联机游戏。 以windows10系统为例,配置java环境,搭建我的世界服务器,下载最新版java版本

    2024年02月08日
    浏览(41)
  • 【个人开发】llama2部署实践(四)——llama服务接口调用方式

    response.json() 返回如下: 代码demo 如果是openai1.0的版本 以上,End!

    2024年04月09日
    浏览(37)
  • 为了辅助个人股票投资者的降低决策误判概率,我们做了一款软件

    对于个人股票投资者而言,避免投资决策误判是最重要且最首要的,盈利多少都是次要的。 这是一个面向个人股票投资者的决策辅助工具【棱镜】,它旨在将你的分析决策逻辑转化为由文字和框架转化为算法,让计算机和算法辅助你共同决策,降低决策误判概率。网站:pr

    2024年02月03日
    浏览(47)
  • Appium: Windows系统桌面应用自动化测试(四) 【辅助工具】

    @[TOC](Appium: Windows系统桌面应用自动化测试(四) 辅助工具) 文件批量上传和文件单个上传原理是相同的,单个上传直接传入文件路径即可,批量上传需要进入批量上传的文件所在目录,然后观察选中多个文件时【文件路径输入框】读取的批量文件写入规则,如图7-12所示,可以看

    2024年02月16日
    浏览(43)
  • Windows权限维持—自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon

      在Windows系统中,很多后门利用的方式不是太会区别在域中还是单机上,只是需要考虑在没有网络情况下,如何将shell反弹回来,就比如,在域中一个无网络的主机和一台有网络的主机,前期通过有网络的主机转发上线到无网络主机上,那么我们木马是不是也可以这样设置

    2024年02月12日
    浏览(45)
  • 【权限维持】Windows&自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon

    1、自启动路径加载 将后门放置该目录,服务器重启即上线 2、自启动服务加载 3、自启动注册表加载 -当前用户键值 -服务器键值(需要管理员权限) -添加启动项 4、计划计时任务 参考前面横向移动 远程连接时,连按五下shift键可以打开粘滞键 系统自带的辅助功能进行替换执

    2024年02月07日
    浏览(46)
  • 辅助驾驶功能开发-功能规范篇(22)-6-L2级辅助驾驶方案功能规范

     1.3.6 ELK 系统功能定义         ELK全称Emergency Lane Keeping,即紧急车道保持。当车辆与道路边界护栏(包含隔离带护栏、路锥、水马) 有碰撞危险或当车辆正偏出道路边沿且存在“对向来车”或“后向来车”与本车有碰撞风险时,通过给与转向反力矩进行车辆横向运动介入

    2024年02月06日
    浏览(38)
  • FastAdmin插件开发辅助增强插件

    不改变官方的开发习惯,但更丝滑,尽最大的努力生成你想要的代码 写在最前面是为了不要漏了,导致插件没有正常工作。 编写代码都在插件 myaddon 目录下,不管前台还是后台的 后台代码 project/addons/myaddon/application 目录下的代码,断点调试需要在 project/application 下找到对应

    2024年02月11日
    浏览(81)
  • 分享:前端开发使用的各类 AI Copilot 辅助开发

    不会现在还有哪位码农没用过AI辅助编程工具吧? 网上各种当生意一样教直接使用的,但是这种方式是不合规的,这里不推荐。为了不再被封,本文会避免使用无关的。 虽然因为种种原因,无法直接使用。但现如今,已经有的很多合规方式可以让我们稳定使用了。主要

    2024年02月07日
    浏览(50)
  • 一、开发环境window10微服务注册中心搭建—Eureka

    简述: Eureka 是天生集群的,搭建配置相当简单:不论你有多少的机器部署,只要相互之间指定对方的 注册中心 地址就可以了 ,而多个 Eureka Server 之间是通过复制的方式完成注册服务的同步,遵循AP原则。 优点: 从设计角度来看,Eureka可以说是无懈可击,注册中心、提供者

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包