Akka.net.NET核心配置

pkwftd7m  于 2023-10-18  发布在  .NET
关注(0)|答案(2)|浏览(159)

我正在尝试在ASP.NET Core 7 Web API中配置akka.net。
我将akka.net配置添加到appsettings.json中,但配置仍然不起作用。我做错了什么?如何在.NET 7中配置akka.net 1.5.13?

{
    "akka": {
        "stdout-loglevel": "DEBUG",
        "stdout-logger-class": "Akka.Event.StandardOutLogger",
        "log-config-on-start": "off",
        "loglevel": "DEBUG",
        "loggers": [ "Akka.Logger.NLog.NLogLogger,Akka.Logger.NLog" ],
    }
}
emeijp43

emeijp431#

我发现了一种配置Akka.net的方法,也许这不是最好的方法,但它工作。
1.将配置放入单独的文件中:akka.config。以下是此文件内容的示例:

akka {
    stdout-loglevel = DEBUG
    loglevel = DEBUG
    log-config-on-start = on
}

1.当你创建Actor系统时,你应该读取并解析这个配置,并将它提供给Actor系统:

var config =
ConfigurationFactory.ParseString(
    File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "akka.config")));
builder.Services.AddSingleton<ActorSystem>(_ => ActorSystem.Create("MySystem",config));

有用的链接:code project

c3frrgcw

c3frrgcw2#

builder.Services
    .AddAkka("ActorSystem", (builder, _) =>
    {
        builder.AddHoconFile("akka.hocon", HoconAddMode.Prepend)
        .WithActors((system, registry, resolver) =>
        {
          // init your actors here 
        }
    }

您的akka设置应该在akka.hocon文件中。
更好的方法是使用Akka。托管,因为你使用WebApi。
https://github.com/akkadotnet/Akka.Hosting

相关问题