.NET6创建Windows服务

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

之前的文章已经写过了创建Windows服务。

C#创建Windows服务_c# 创建windows服务_故里2130的博客-CSDN博客

 不过之前使用的是.NET Framework创建的Windows服务。现在已经2023年了,其中vs2022有新的方法去创建Windows服务,本次使用.NET6创建Windows服务。

1.选择如图所示,其中vs2022这样的,vs2019不一样,但是都是worker service

.NET6创建Windows服务

2.创建完成是这样的

.NET6创建Windows服务

3.安装Microsoft.Extensions.Hosting.WindowsServices

这里注意版本,选择的是net6,好像只能安装6版本的。

 nuget里面安装

.NET6创建Windows服务

.NET6创建Windows服务

4.服务命名,Program.cs文件

namespace WorkerServiceDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            IHost host = Host.CreateDefaultBuilder(args)
                 .UseWindowsService(options =>
                 {
                     //给服务命名,在Windows服务中的会显示名字
                     options.ServiceName = "NET6故里2130";
                 })
                .ConfigureServices(services =>
                {
                    services.AddHostedService<Worker>();
                })
                .Build();

            host.Run();
        }
    }
}

5.服务里面写启动,停止,以及执行任务,Worker.cs中写

里面的业务就是,检测启动,停止,每次执行任务都输出

namespace WorkerServiceDemo
{
    public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;
        private readonly string filePath = "D:\\Service1.txt";

        public Worker(ILogger<Worker> logger)
        {
            _logger = logger;
        }

        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="stoppingToken"></param>
        /// <returns></returns>
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                using (FileStream stream = new FileStream(filePath, FileMode.Append))
                using (StreamWriter writer = new StreamWriter(stream))
                {
                    writer.WriteLine($"{DateTimeOffset.Now},服务执行!");
                }
                await Task.Delay(1000, stoppingToken);
            }
        }
        /// <summary>
        /// 服务启动
        /// </summary>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public override Task StartAsync(CancellationToken cancellationToken)
        {

            using (FileStream stream = new FileStream(filePath, FileMode.Append))
            using (StreamWriter writer = new StreamWriter(stream))
            {
                writer.WriteLine($"{DateTime.Now},服务启动!");
            }

            return base.StartAsync(cancellationToken);
        }
        /// <summary>
        /// 服务停止
        /// </summary>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public override Task StopAsync(CancellationToken cancellationToken)
        {
            using (FileStream stream = new FileStream(filePath, FileMode.Append))
            using (StreamWriter writer = new StreamWriter(stream))
            {
                writer.WriteLine($"{DateTime.Now},服务停止!");
            }

            return base.StopAsync(cancellationToken);
        }
    }
}

6.效果

.NET6创建Windows服务

7.实际情况,我们肯定不是这么使用,但是这样调试肯定是可以的,接下来,我们安装此服务,变成Windows服务的样子,首选先进行发布

.NET6创建Windows服务

8.执行此命令

 sc.exe create "故里2130" binpath="D:\code\WorkerService1\WorkerServiceDemo\bin\Release\net6.0\publish\WorkerServiceDemo.exe"

.NET6创建Windows服务

9.此时打开Windows服务,看到已经有了

.NET6创建Windows服务

10.现在就和正常的服务一样了,有开始,有停止,操作后,然后打开日志,可以看到服务的记录。

.NET6创建Windows服务

来源:.NET6创建Windows服务_.net windows服务_故里2130的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-495613.html

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

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

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

相关文章

  • net6支持的windows版本

    微软官方文档https://learn.microsoft.com/zh-cn/dotnet/core/install/windows?tabs=net60 .NET 6 支持下列 Windows 版本: (OS)-------------------------------------Version-----------------------体系结构 Windows 11---------------------------21H2--------------------------x64、Arm64 Windows 10 客户端 -----------------1607±-----------------------x

    2024年02月07日
    浏览(39)
  • Windows Server 2012 R2 部署.net6网站

    目录 安装Windows操作系统补丁 安装VC_Redist 安装.net6的Hosting Bundle IIS新增网站 IIS配置应用程序池 报错:缺少api-ms-win-crt-runtime-l1-1-0.dll 无法访问注册表Access to the registry key is denied 之前部署在Windows Server 2016上很正常没有什么问题 但是在2012 R2上部署失败(503),网上搜查后,发现

    2024年02月11日
    浏览(47)
  • Linux系统上创建.NET6项目(通过命令行(CTL)方式)

    平时大家创建项目基本上都是借助开发工具创建,比如visual studio,visual studio code,今天我们在Linux系统上,通过命令行的形式创建.NET6项目。 第一个直接安装 如图所示,即.NET环境安装成功。 我们以webapi为例,演示创建项目的过程。 认识dotnet相关命令 经常会用到的命令。 认

    2024年02月03日
    浏览(43)
  • 从壹开始前后端开发【.Net6+Vue3】(二)前端创建

    工作后,学习的脚步一直停停走走,希望可以以此项目为基础,可以不断的迫使自己不断的学习以及成长 将以Girvs框架为基础,从壹开始二次开发一个前后端管理框架 在这过程中一步步去学习使用到的技术点,也同时会将在此过程中遇到的问题进行分享 项目地址 上文介绍到

    2024年02月10日
    浏览(45)
  • 部署.net6 到 Windows server 2008 r2 IIS

    首先安装vc环境,文件下载:x64:https://go.microsoft.com/fwlink/?LinkId=746572 x86:https://go.microsoft.com/fwlink/?LinkId=746571 安装net6:dotnet-hosting-6.0.14-win.exe,下载地址: Download .NET 6.0 (Linux, macOS, and Windows)Download ASP.NET Core 6.0 Runtime (v6.0.14) - Windows Hosting Bundle Installer   安装完成之后,在iis的模块

    2024年02月02日
    浏览(46)
  • .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移

    接上期文章《.NET6项目连接数据库方式方法》,有人问了我几个问题,现在就这几个问题,拓展延申一下创建实体类、数据库。把ORM框架和数据迁移都写进去。 我的项目是在Linux上创建的,使用的是vscode开发工具远程开发。为了方便大家阅读和操作,我将项目down到我的本地电

    2024年02月05日
    浏览(51)
  • C# .Net6搭建灵活的RestApi服务器

    C# .Net6后支持顶级语句,更简单的RestApi服务支持,可以快速搭建一个极为简洁的Web系统。推荐使用Visual Studio 2022,安装\\\"ASP.NET 和Web开发\\\"组件。      关键步骤如下: 包添加了“Newtonsoft.Json”,方便序列化和反序化。 代码中添加了Post和Get的全路径注册,并给出了如何解析请求

    2024年02月21日
    浏览(38)
  • 使用Autofac进行服务注册,适用版本.Net6(程序集、泛型)

    具体的也可以去参考官网:https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html 首先在Program.cs所属的层中引用nuget包: nuget网址:https://www.nuget.org/packages  可以使用NuGet包管理器进行搜索安装 在Program.cs中加入如下代码: 代码中SmartHealthcare.Application可以替换为具体自己项目中Ap

    2024年02月16日
    浏览(44)
  • C# .Net6 指定WSDL, 生成Webservice,调用该接口服务

    IDE: Microsoft Visual Studio Community 2022 (64 位) 平台:.Net6 协议:Soap协议 Xml格式 需要开发一个前置机程序, 用于和硬件程序交互, 已知条件是:嵌入式同事提供另一个约定好的*.wsdl文件作为双方通信的Webservice接口协议,对方是服务端,前置机是客户端 使用BasicHttpBinding 通过WS

    2024年02月04日
    浏览(51)
  • C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

    connected Services 服务依赖(第三方) Properties 文件下 launchSettings.json 项目启动配置文件 wwwroad 存放静态文件 依赖项 管理Nuget程序包 appsettings.json 配置文件 C 业务逻辑运算–调用其他的服务做业务逻辑 M 实体对象,保存数据,数据传输 V 视图,表现层 第一步:寻找log4net 程序包

    2024年02月14日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包