.NET Core - 在 App.config 中使用 system.diagnostics

9
我正在将一个控制台应用程序从.NET Legacy迁移到.NET Core 2.2。在该应用程序中,我使用了HttpClientHttpRequestMessage类。有时,使用这些类进行的请求会失败。因此,我在我的App.config文件中添加了一个system.diagnostics块以记录原始请求以诊断问题。虽然这在我的旧应用程序中可以正常工作,但在.NET Core中我现在遇到了错误。
当我启动我的应用程序时,我看到以下错误:
ConfigurationErrorsException: Unrecognized configuration section system.diagnostics. 

我所添加到App.config文件的唯一内容是:<system.diagnostics></system.diagnostics>,这是一个空的配置块。如果我删除该块,则我的应用程序将按预期运行。
如何将我的传统应用程序中使用的system.diagnostics配置添加到我的.NET Core应用程序中以便我可以再次跟踪原始Web请求?
谢谢!

你确定你的应用程序在“configuration”块中没有“system.diagnostics”块吗?如果有,那么你不能在同一个项目中实例化两个块。 - Dr. Roggia
https://dev59.com/1VMI5IYBdhLWcg3wuOCO - CodeCaster
@Dr.Roggia 我怎么知道呢?我只有一个 App.config 文件,而且里面几乎是空的。难道 .NET Core 会自动为控制台应用程序注入一些配置细节,而我不知道吗? - Some User
@CodeCaster 这个SO问题使用了XML配置方法,这也是我正在使用和想要的。然而,答案是针对ASP.NET并使用.json配置语法的。我不使用ASP.NET,我正在构建一个控制台应用程序。我想使用XML配置方法而不是.json方法。 - Some User
我认为关键是追踪功能尚未加入.NET Core。不过我还不确定,因为我还没有需要使用它。请参见https://learn.microsoft.com/en-us/aspnet/core/signalr/diagnostics?view=aspnetcore-2.2,尝试`{ "Logging": { "LogLevel": { "System.Net": "Trace" } } }`。 - CodeCaster
1
https://github.com/dotnet/corefx/issues/29210 - Lex Li
1个回答

21
问题在于.NET Core没有预先注册system.diagnostics的配置节。请尝试将以下代码放置在App.config的开头,仅位于行下方:
<configSections>
    <section name="system.diagnostics" type="System.Diagnostics.DiagnosticsConfigurationHandler"/>
</configSections>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接