国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù)

這篇具有很好參考價(jià)值的文章主要介紹了如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

寫在前面

前面寫了一篇關(guān)于將.NET應(yīng)用轉(zhuǎn)換成Windows服務(wù)的方法,其實(shí)真正的目的是為了探索如何將Asp.Net Core Web Api 部署成Windows 服務(wù)。基于上一篇的基礎(chǔ),只需把創(chuàng)建 WebApplication 的代碼放到?BackgroundService 的ExecuteAsync方法中即可。

其中比較重要的一個(gè)細(xì)節(jié)就是需要指定一下配置:

? ? ? ? host.ConfigureAppConfiguration((hostingContext, config) => {
? ? ? ? ? ? config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
? ? ? ? ? ? config.AddEnvironmentVariables();
? ? ? ? });

appsettings.json 的內(nèi)容如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "urls": "http://localhost:6001",
  "server.urls": "http://localhost:6001"
}

重點(diǎn)部分:

? "urls": "http://localhost:6001",
? "server.urls": "http://localhost:6001"?

代碼實(shí)現(xiàn)

using System.Runtime.InteropServices;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Hosting;

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args)
    {
        var host = Host.CreateDefaultBuilder(args);
        //判斷當(dāng)前系統(tǒng)是否為windows
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            host.UseWindowsService();

        }

        host.ConfigureAppConfiguration((hostingContext, config) => {
            config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
            config.AddEnvironmentVariables();
        });

        return host.ConfigureServices((hostContext, services) =>
        {            
            services.AddHostedService<WebApp>();

        });
    }
}

public class WebApp: BackgroundService
{
    public void StartApp()
    {
        var builder = WebApplication.CreateSlimBuilder([]);

        builder.Services.ConfigureHttpJsonOptions(options =>
        {
            options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default);
        });

        var app = builder.Build();

        var sampleTodos = new Todo[] {
            new(1, "Walk the dog"),
            new(2, "Do the dishes", DateOnly.FromDateTime(DateTime.Now)),
            new(3, "Do the laundry", DateOnly.FromDateTime(DateTime.Now.AddDays(1))),
            new(4, "Clean the bathroom"),
            new(5, "Clean the car", DateOnly.FromDateTime(DateTime.Now.AddDays(2)))
        };

        var todosApi = app.MapGroup("/todos");
        todosApi.MapGet("/", () => sampleTodos);
        todosApi.MapGet("/{id}", (int id) =>
            sampleTodos.FirstOrDefault(a => a.Id == id) is { } todo
                ? Results.Ok(todo)
                : Results.NotFound());

        app.Run();
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        StartApp();
    }
}

public record Todo(int Id, string? Title, DateOnly? DueBy = null, bool IsComplete = false);

[JsonSerializable(typeof(Todo[]))]
internal partial class AppJsonSerializerContext : JsonSerializerContext
{

}

?項(xiàng)目目錄結(jié)構(gòu):

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù),C#,運(yùn)維管理,asp.net,前端,后端

運(yùn)行目錄結(jié)構(gòu):

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù),C#,運(yùn)維管理,asp.net,前端,后端

?setup.bat 內(nèi)容:

sc create MyService binPath= %~dp0AspNetCoreWindowsService.exe
sc failure MyService actions= restart/60000/restart/60000/""/60000 reset= 86400
sc start MyService
sc config MyService start=auto

調(diào)用示例

執(zhí)行setup.bat?

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù),C#,運(yùn)維管理,asp.net,前端,后端

服務(wù)被成功創(chuàng)建并運(yùn)行?

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù),C#,運(yùn)維管理,asp.net,前端,后端

用瀏覽器訪問(wèn)一下

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù),C#,運(yùn)維管理,asp.net,前端,后端

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-799150.html

如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù),C#,運(yùn)維管理,asp.net,前端,后端

?訪問(wèn)正常,到此結(jié)束。

?

到了這里,關(guān)于如何將.NET 8.0的ASP.NET Core Web API部署成Windows服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ASP.NET Core 中的兩種 Web API

    ASP.NET Core 有兩種創(chuàng)建 RESTful Web API 的方式: 基于 Controller,使用完整的基于ControllerBase的基類定義接口endpoints。 基于 Minimal APIs,使用Lambda表達(dá)式定義接口 endpoints。 基于 Controller 的 Web API 可以使用構(gòu)造函數(shù)注入,或者屬性注入,遵循面向?qū)ο竽J健?基于 Minimal APIs 的 Web API 通

    2024年02月09日
    瀏覽(34)
  • ASP.NET Core教程:ASP.NET Core 程序部署到Windows系統(tǒng)

    ASP.NET Core教程:ASP.NET Core 程序部署到Windows系統(tǒng)

    本篇文章介紹如何將一個(gè)ASP.NET Core Web程序部署到Windows系統(tǒng)上。這里以ASP.NET Core WebApi為例進(jìn)行講解。首先創(chuàng)建一個(gè)ASP.NET Core WebApi項(xiàng)目,使用默認(rèn)的Values控制器,這里使用Visual Studio 2019創(chuàng)建一個(gè)ASP.NET Core 3.1d的WebApi項(xiàng)目。 創(chuàng)建新項(xiàng)目的時(shí)候選項(xiàng)ASP.NET Core Web應(yīng)用程序,如下圖所

    2023年04月08日
    瀏覽(103)
  • ASP.NET Core Web API之Token驗(yàn)證

    ASP.NET Core Web API之Token驗(yàn)證

    在實(shí)際開(kāi)發(fā)中,我們經(jīng)常需要對(duì)外提供接口以便客戶獲取數(shù)據(jù),由于數(shù)據(jù)屬于私密信息,并不能隨意供其他人訪問(wèn),所以就需要驗(yàn)證客戶身份。那么如何才能驗(yàn)證客戶的什么呢?今天以一個(gè)簡(jiǎn)單的小例子,簡(jiǎn)述ASP.NET Core Web API開(kāi)發(fā)過(guò)程中,常用的一種JWT身份驗(yàn)證方式。僅供學(xué)

    2024年02月11日
    瀏覽(22)
  • ASP.NET Core Web API 流式返回,逐字顯示

    ASP.NET Core Web API 流式返回,逐字顯示

    Websocket、SSE(Server-Sent Events)和長(zhǎng)輪詢(Long Polling)都是用于網(wǎng)頁(yè)和服務(wù)端通信的技術(shù)。 Websocket是一種全雙工通信協(xié)議,能夠?qū)崿F(xiàn)客戶端和服務(wù)端之間的實(shí)時(shí)通信。它基于TCP協(xié)議,并且允許服務(wù)器主動(dòng)向客戶端推送數(shù)據(jù),同時(shí)也允許客戶端向服務(wù)器發(fā)送數(shù)據(jù)。 SSE是一種單向

    2023年04月23日
    瀏覽(21)
  • ASP.NET Core Web API入門之三:使用EF Core

    ASP.NET Core Web API入門之三:使用EF Core

    一般來(lái)講我們做項(xiàng)目都會(huì)用實(shí)體類跟數(shù)據(jù)庫(kù)實(shí)體進(jìn)行關(guān)系對(duì)應(yīng),這樣的好處方便我們維護(hù)、增刪改查,并且可以減少SQL的編寫,從而統(tǒng)一風(fēng)格,那么 Entity Framework Core 就是很不錯(cuò)的ORM框架。 1、跨數(shù)據(jù)庫(kù)支持能力強(qiáng)大,只需修改配置就可以輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)切換。 2、提升了開(kāi)發(fā)效

    2024年02月10日
    瀏覽(22)
  • 2.1 .net 8 ASP.NET Core Web API - Controller詳解

    2.1 .net 8 ASP.NET Core Web API - Controller詳解

    書接上回,上節(jié)我們留了幾個(gè)問(wèn)題,即: 1、接口Hello的名字究竟怎么來(lái)的? 2、我們?nèi)绻氚呀涌诟某善渌拿Q,應(yīng)該怎么做? 3、我們繼承ControllerBase,以及[Route(“[controller]”)]屬性,又是分別起到什么作用? 需要解決以上幾個(gè)問(wèn)題,我們就要繼續(xù)深入研究Controller相關(guān)的

    2024年02月20日
    瀏覽(22)
  • ASP.NET Core 中基于 Controller 的 Web API

    ASP.NET Core 中基于 Controller 的 Web API

    客戶端發(fā)送Http請(qǐng)求,Contoller響應(yīng)請(qǐng)求,并從數(shù)據(jù)庫(kù)讀取數(shù)據(jù),序列化數(shù)據(jù),然后通過(guò) Http Response返回序列化的數(shù)據(jù)。 Web API 的所有controllers 一般繼承于 ControllerBase 類,而不是Controller 類。 因?yàn)?Controller 類也繼承自ControllerBase 類,但是支持views,而API一般不需要這個(gè)功能。 Co

    2024年02月10日
    瀏覽(30)
  • 在 ASP.NET Core Web API 中處理 Patch 請(qǐng)求

    PUT 和 PATCH 方法用于更新現(xiàn)有資源。 它們之間的區(qū)別是,PUT 會(huì)替換整個(gè)資源,而 PATCH 僅指定更改。 在 ASP.NET Core Web API 中,由于 C# 是一種靜態(tài)語(yǔ)言( dynamic 在此不表),當(dāng)我們定義了一個(gè)類型用于接收 HTTP Patch 請(qǐng)求參數(shù)的時(shí)候,在 Action 中無(wú)法直接從實(shí)例中得知客戶端提供了哪

    2024年02月04日
    瀏覽(98)
  • ASP.NET Core 中基于 Minimal APIs 的Web API

    Minimal APIs 是ASP.NET Core中快速構(gòu)建 REST API 的方式,可以用最少的代碼構(gòu)建全功能的REST API。比如下面三行代碼: 可以實(shí)現(xiàn)在請(qǐng)求網(wǎng)站根目錄結(jié)點(diǎn)的時(shí)候,返回\\\"Hello World!\\\"。 這種方式的Web API可以用于構(gòu)建微服務(wù),極簡(jiǎn)功能的網(wǎng)站。 下面代碼,將幾個(gè) HTTP 請(qǐng)求的 url映射到 Lambda

    2024年02月10日
    瀏覽(25)
  • ASP.NET Core Web API 流式返回,實(shí)現(xiàn)ChatGPT逐字顯示

    ASP.NET Core Web API 流式返回,實(shí)現(xiàn)ChatGPT逐字顯示

    ??作者:科技、互聯(lián)網(wǎng)行業(yè)優(yōu)質(zhì)創(chuàng)作者 ??專注領(lǐng)域:.Net技術(shù)、軟件架構(gòu)、人工智能、數(shù)字化轉(zhuǎn)型、DeveloperSharp、微服務(wù)、工業(yè)互聯(lián)網(wǎng)、智能制造 ??歡迎關(guān)注我(Net數(shù)字智慧化基地),里面有很多 高價(jià)值 技術(shù)文章, 是你刻苦努力也積累不到的經(jīng)驗(yàn) ,能助你快速成長(zhǎng)。升職

    2024年02月22日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包