标签: asp.net-core-minimal-hosting-model

为什么迁移到 ASP.NET Core 6 最小托管模型?

我正在将系统从 ASP.NET Core 5 升级到 6。我已阅读新的“最小托管模型”的迁移指南。

文档说新的方式是首选和推荐的,但旧的方式是受支持的 - 所以我不需要改变。他们还表示旧方法对于“高级”场景很有用,但没有提及细节。

有很多关于如何使用新方法的文档/博客/SO问题 - 但没有提及原因。给出了“仅四行应用程序”作为理由,但这不足以成为迁移工作系统的理由。

我将升级到 v6,但尚未决定托管模型。我或我的工作生产系统将如何受益?

如果您将生产系统迁移到新的托管模型,您能否分享一下是否值得的建议?新方法的优点(和缺点)是什么?谢谢!

c# asp.net-core asp.net-core-6.0 asp.net-core-minimal-hosting-model

8
推荐指数
1
解决办法
3350
查看次数

在 ASP.NET Core Web Minimal API 中运行单独的进程

我有一个长时间运行的进程,我想向其中添加 REST api。通过 API,我希望能够检查长时间运行的进程中变量的值。

我使用最少的 API 整理了一个概念验证:

public class Program
{
    public static int val = 0;
    public static object locker = new object();


    public static void Main(string[] args)
    {
        Task.Run(() =>
        {
            while (true)
            {
                lock (locker)
                {
                    val++;
                }
                Thread.Sleep(100);
            }
        });

        var builder = WebApplication.CreateBuilder(args);
        var app = builder.Build();

        app.MapGet("/", () => 
        {
            lock (locker)
                return val;
        });

        app.Run();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的想法是让我的长时间运行进程的代码在 Task.Run 中运行。我以正确的方式处理这件事吗?我想做的事情是否有任何潜在的陷阱/陷阱?

c# task-parallel-library asp.net-web-api asp.net-core asp.net-core-minimal-hosting-model

3
推荐指数
1
解决办法
791
查看次数