.Net 8.0 Web API Controllers 添加到 windows 服务

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

示例源码下载:https://download.csdn.net/download/hefeng_aspnet/88747022

创建 Windows 服务的方法之一是从工作线程服务模板开始。

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

但是,如果您希望能够让它托管 API 控制器(也许是为了查看它正在运行的进程的状态),您将需要添加并进行一些更改。在这里我将展示如何做到这一点。请注意,我使用的是 .NET 8。

我们需要以下内容才能创建 Windows 服务

创建项目后,添加Microsoft.Extensions.Hosting.WindowsServices NuGet 包,用于将其部署为 Windows 服务。

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

添加到 Program.cs 行:
builder.Services.AddWindowsService();

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

现在我们将继续添加对控制器的支持。

添加 NuGet 包Microsoft.AspNetCore.OpenApi

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

在Program.cs中,您将添加
using Microsoft.AspNetCore.Builder;
现在替换
var builder = Host.CreateApplicationBuilder(args);

var builder = WebApplication.CreateBuilder(args);
并添加
builder.Services.AddControllers();

host.MapControllers();

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

我们现在将添加一个控制器。创建一个名为Controllers的文件夹。在里面创建一个名为MyController.cs的文件,其中包含以下代码:

using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyWorkerService.Controllers;
[Route("[controller]")]
[ApiController]
public class MyController : ControllerBase
{
    [HttpGet]
    public ContentResult Get()
    {
        string someContent = "Some Content";

        return new ContentResult
        {
            Content = someContent,
            ContentType = "text/html"
        };
    }
}

 运行应用程序。您应该看到一个终端窗口,显示以下内容:

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

在浏览器中访问http://localhost:5000/my,您应该看到以下内容:

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

在 Windows 上作为服务发布和安装
右键单击该项目并选择“发布...”

在弹出窗口中,选择“文件夹”,然后按“下一步”、 “完成并关闭”

下一步按发布

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

以管理员身份打开终端窗口并执行以下命令(我的项目的路径是 T:\MyWorkerService 但您的项目会有所不同,因此请相应更改):

sc.exe create "My Worker Service" binpath="T:\MyWorkerService\bin\Release\net8.0\publish\MyWorkerService.exe"

您应该看到[SC] CreateService SUCCESS

在 Windows 中打开“服务”应用程序,您应该会在那里看到它。

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

右键单击并选择开始。

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

浏览到http://localhost:5000/my以确保它正在运行。

要卸载在终端 sc.exe 中运行的服务,请删除“My Worker Service”

只需执行sc.exe即可查看所有选项。

在 appsettings.json 中定义端点

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://*:1234"
      }
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

添加Swagger
添加NuGet包Swashbuckle.AspNetCore

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

 在Program.cs中添加

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

// Configure the HTTP request pipeline.
if (host.Environment.IsDevelopment())
{
    host.UseSwagger();
    host.UseSwaggerUI();
}

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0

运行项目并浏览到http://localhost:5000/swagger/index.html(如果更改了 appsettings.json 中的端口,则浏览到http://localhost:1234/swagger/index.html ),您应该看到:

.Net 8.0 Web API Controllers 添加到 windows 服务,.Net8.0文章来源地址https://www.toymoban.com/news/detail-799222.html

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

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

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

相关文章

  • .net8+webapi+sqlsugar基本配置;“连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确”异常

    1、引入sqlsugar的nugat包 2、封装一个操作类(参考sqlsugar官方文档) 3、配置program.cs和appsettings program.cs加上下面代码  appsettings配置连接字符串 4、新建一个控制台生成实体类 5、添加测试的controller 6、swagger调试抛异常 7、修改csproj文件中,仅适用.net 8(参考sqlsugar官方文档)  8、

    2024年03月15日
    浏览(57)
  • .net6 core web项目发布部署到IIS,以Windows服务的形式部署启动

    一、修改Program.cs代码,注册为 Windows Service 如果不注册builder.Host.UseWindowsService(); 安装为window服务会启动报错 安装NuGet包 Microsoft.Extensions.Hosting.WindowsServices Program.cs代码 二、发布项目 1、以文件夹形式 2、目标运行时选对应的平台(本Coder是:winx-64) 3、文件夹选项:在发布前删

    2024年02月11日
    浏览(39)
  • 如何将字体添加到 ONLYOFFICE 文档服务器 8.0

    作者:VincentYoung 阅读本文,了解如何为自己的在线办公软件 ONLYOFFICE 文档服务器的字体库添加字体 ONLYOFFICE 文档是一个功能强大的文档编辑器,支持处理文本文档、电子表格、演示文稿、可填写表单、PDF 和电子书,可多人在线协作,支持 AI 集成。它具有丰富的插件库,并且

    2024年02月22日
    浏览(46)
  • .net Core API 添加 NLog

    nlog.config program.cs  NuGet packages:NLog、NLog.Web.AspNetCore 

    2024年02月12日
    浏览(30)
  • ConfigureAwait in .NET8

    首先,让我们回顾一下原版 ConfigureAwait 的语义和历史,它采用了一个名为 continueOnCapturedContext 的布尔参数。 当对任务( Task 、 TaskT 、 ValueTask 或 ValueTaskT )执行 await 操作时,其默认行为是捕获“上下文”的;稍后,当任务完成时,该 async 方法将在该上下文中继续执行。“上

    2024年02月05日
    浏览(36)
  • Net8 EFCore Mysql 连接

    一、安装插件 Pomelo.EntityFrameworkCore.MySq (这里要选8.0.0以上版本低版本不支持.net8) 二、配置数据库连接串  appsettings.json 中配置数据库连接串 三、添加实体类Student和数据库上下文 新建 Entities 目录,在,根据表及字段,在目录下新建 Student 实体类,在类上加  [Table(\\\"student\\\")] 表

    2024年02月22日
    浏览(42)
  • .NET8 Blazor新特性 流式渲染

    什么是SSR Blazor中的流式渲染结合了SSR(服务端渲染),服务端将HTML拼好返回给前端,有点像我们熟知的Razor Pages 或 MVC 。 当已经有了 Razor Pages 或 MVC 时,为什么还要选择使用 Blazor 来实现这一点?这里有几个原因。 首先,Razor Pages 和 MVC 没有像Blazor这样提供了很好的可重用组

    2024年02月05日
    浏览(39)
  • 在NET8中使用简化的 AddJwtBearer 认证

    系统版本: win10 .NET SDK: NET8 开发工具:vscode 参考引用:使用 dotnet user-jwts 管理开发中的 JSON Web 令牌 注意:以下示例中的端口、token等需替换成你的环境中的信息 运行以下命令来创建一个空的 Web 项目,并添加 Microsoft.AspNetCore.Authentication.JwtBearer NuGet 包: 将 Program.cs 的内容替

    2024年02月05日
    浏览(36)
  • .NET8依赖注入新特性Keyed services

    什么是Keyed service Keyed service是指,为一个需要注入的服务定义一个Key Name,并使用使用Key Name检索依赖项注入 (DI) 服务的机制。 使用方法 通过调用 AddKeyedSingleton (或 AddKeyedScoped 或 AddKeyedTransient)来注册服务,与Key Name相关联。或使用 [FromKeyedServices] 属性指定密钥来访问已注册

    2024年02月05日
    浏览(47)
  • .Net8顶级技术:边界检查之IR解析(二)

    IR技术应用在各个编程语言当中,它属于JIT的核心部分,确实有点点麻烦。但部分基本明了。本篇通过.Net8里面的边界检查的小例子了解下。前情提要,看这一篇之前建议看看前一篇:点击此处,以便于理解。 1.前奏 先上C#代码: Test函数经过Roslyn编译成IL代码之后,会被JIT导

    2024年02月06日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包