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

2024-01-17 12:36

本文主要是介绍.Net 8.0 Web API Controllers 添加到 windows 服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

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

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

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

添加 NuGet 包Microsoft.AspNetCore.OpenApi

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

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

host.MapControllers();

我们现在将添加一个控制器。创建一个名为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"};}
}

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

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

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

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

下一步按发布

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

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

您应该看到[SC] CreateService SUCCESS

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

右键单击并选择开始。

浏览到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

 在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();
}

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

这篇关于.Net 8.0 Web API Controllers 添加到 windows 服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616064

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4