2017-10-27 18 views
2

私たちのプロジェクトにserilogを実装しています。 AspNetCoreRateLimitをAPIに呼び出すために実装しました。このプロジェクトは.NETコアプロジェクトですが、いくつかの依存関係のためNet461をターゲットにしています。Serilogの実装は他の設定を破る

血清学の前に、apiは正常でした。

これでserilogがインストールされましたが、エラーが発生しています。

これは、以前はserilogが導入されていたときに起きたエラーを引き起こします。

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

スタートアップ()は:

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

以下は、(構成である)

loggerfactory.AddSerilog(); 

services.Configure <からのエラー>()である:

System.TypeLoadExceptionが発生しました HResult = 0x80131522 メッセージ 'Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1'タイプのメソッド 'get_Name'は、アセンブリ 'Microsoft.Extensions.Options.ConfigurationExtensions、Version = 1.1.2.0、Culture = neutral、PublicKeyToken = adb9793829ddae60'から取得します。実装はありません。 ソース= Microsoft.Extensions.Options.ConfigurationExtensions のStackTrace:NGB.IFS.PurchApp.Services.Startup.ConfigureServicesでMicrosoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure [TOptions(IServiceCollectionサービス、IConfiguration設定)で (IServiceCollectionサービス)Cに:\ Users \ユーザーsaynort \ドキュメント\レポ\ ngb.ifs.purchapp \ ngb.ifs.purchapp \ NGB.IFS.PurchApp.Services \ Startup.cs:ライン86

私はserilog、serilogを持っています.extensions.logging、およびserilog.sinks.fileインストールされたNugetパッケージ。

答えて

5

Serilog.Extensions.Logging Github projectから:

ASP.NETコア2.0アプリケーションでは、代わりにSerilog.AspNetCoreUseSerilog()を好む必要があります。

SerilogおよびSerilog.Extensions.Loggingパッケージを削除します。次に、Serilog.AspNetCoreパッケージをインストールします。

PM> Install-Package Serilog.AspNetCore -DependencyVersion Highest 
+0

ありがとうございます。よりシームレスかどうかを試してみましょう! – Tezza

+0

私はこれを行ってくれましたが、このソリューションは.Net Core 2プロジェクトの場合にのみ動作するのではないかと心配しています。これはそうではありません。私がアップグレードを試みると、ビルドと依存関係のために次のことができます。 エラー "パッケージMicrosoft.AspNetCore.All 2.0.0はnet461と互換性がありません"というエラーが表示されます。これは私が含む必要がある依存関係のために私のターゲットビルドです(サードパーティ製)。 – Tezza

+0

私はあなたの質問のある時点でASP.NET Core 2.0を使って言及していると宣言できたので、私は心を失いつつあるはずです。それにかかわらず、あなたはアップグレードする方が良いと思います。 .NET Core 2.0は.NET Standard 2.0を実装しています。つまり、今ではほとんどすべての.NET Frameworkライブラリを使用できます。結果として、あなたが参照しているライブラリが本当にWindows特有のものをしない限り、完全なフレームワークで実行する必要はありません。 –

関連する問題