小编Rui*_*Rui的帖子

从 Azure Function 中的 IConfiguration 加载 Serilog 时出错

尝试从 Azure Function 中的 IConfiguration 设置 Serilog 时,出现以下错误。

无法加载文件或程序集“Microsoft.Extensions.DependencyModel,Version=3.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。

该错误是在运行时抛出的:

var loggerConfiguration = new LoggerConfiguration().ReadFrom.Configuration(Configuration);

我的启动类如下所示:

public class Startup : FunctionsStartup
{
    public IConfiguration Configuration { get; set; }

    public override void Configure(IFunctionsHostBuilder builder)
    {
        Configuration = builder.GetContext().Configuration;

        (...)

        var loggerConfiguration = new LoggerConfiguration().ReadFrom.Configuration(Configuration);

        var logger = loggerConfiguration.CreateLogger();
        builder.Services.AddLogging(lb => lb.AddSerilog(logger));
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以在项目的依赖项中看到 Microsoft.Extensions.DependencyModel(3.0.0) 依赖项,作为 Serilog.Settings.Configuration(3.3.0) 的子依赖项。

我可以对 Serilog 配置进行硬编码,并使其与 MSSqlServer 接收器一起工作,但重点是通过简单的设置更改来配置此功能。

我正在使用 .net6 和 azure 函数 v4。

编辑:添加 .csproj 示例

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference …
Run Code Online (Sandbox Code Playgroud)

c# serilog azure-functions .net-6.0

9
推荐指数
1
解决办法
1264
查看次数

标签 统计

.net-6.0 ×1

azure-functions ×1

c# ×1

serilog ×1