c# - Serilog 实现打破了其他配置

标签 c# .net .net-core asp.net-core-webapi serilog

在我们的项目中实现 Serilog。我们已经实现了 AspNetCoreRateLimit 来阻止对 API 的调用。该项目是一个 .Net Core 项目,但由于某些依赖关系而针对 Net461 进行构建。

在 Serilog 之前,API 很好。

现在安装了 serilog,我们收到一个错误。

在引入 serilog 之前调用此方法会导致错误出现。

services.Configure<IpRateLimitOptions>(_configuration.GetSection("IpRateLimiting"));

Startup() 具有:

Log.Logger = new LoggerConfiguration()
          .WriteTo.File("Logs/FSCPAPI-{Date}.log")
          .CreateLogger();

下面是在Configure()中

loggerfactory.AddSerilog();

来自 services.Configure<>() 的错误是:

System.TypeLoadException occurred HResult=0x80131522 Message=Method 'get_Name' in type 'Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1' from assembly 'Microsoft.Extensions.Options.ConfigurationExtensions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation. Source=Microsoft.Extensions.Options.ConfigurationExtensions StackTrace: at Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure[TOptions](IServiceCollection services, IConfiguration config) at NGB.IFS.PurchApp.Services.Startup.ConfigureServices(IServiceCollection services) in C:\Users\saynort\Documents\Repos\ngb.ifs.purchapp\ngb.ifs.purchapp\NGB.IFS.PurchApp.Services\Startup.cs:line 86

我安装了 serilog、serilog.extensions.logging 和 serilog.sinks.file Nuget 软件包。

最佳答案

来自Serilog.Extensions.Logging Github project :

ASP.NET Core 2.0 applications should prefer Serilog.AspNetCore and UseSerilog() instead.

删除 Serilog 和 Serilog.Extensions.Logging 包。然后,使用以下命令安装 Serilog.AspNetCore 包:

PM> Install-Package Serilog.AspNetCore -DependencyVersion Highest

关于c# - Serilog 实现打破了其他配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46977606/

相关文章:

Linux 上 .NET Core 中的 C# : Referencing or using . so 文件

c# - 从 Byte[] 显示图像的最简单方法是什么?

c# - 插件中的 ASP .NET Core MVC 2.1 mvc View

.net - double.Epsilon 与 std::numeric_limits<double>::min()

c# - .Net Core CLI 可以从 C# 应用程序中运行吗

.Net Core 和 NuGet

c# - 确保此代码文件中定义的类与 'inherits' 属性匹配

c# - 删除查询不起作用 SQL C#

c# - 在对象成为孤立对象之前,我是否需要从对象中删除事件订阅?

c# - 为什么.netstandard 1.4 是 NetStandard.Library 1.6?