json - Web.config 在 Asp.net 5 mvc6 中消失了,非 Web 配置怎么样?

标签 json asp.net-mvc configuration

上下文

asp.net 5 vNext MVC6 中,Web.config 消失了,取而代之的是 json 文件作为配置。但是,在我的 web.config 中,我设置了 WCF 客户端System.DiagnosticsEssential.Diagnostics< 的跟踪监听器,以及这些组件(WCF 客户端 和跟踪监听器显然无法在启动时读取 json)。所以在 vNext 中,微软显然已经放弃了 System.Configuration

问题

是否有一些迁移路径,这样我就不必完全重写以使这些组件在启动时读取配置信息?

最佳答案

简短回答:它在 .NET Framework (4.5.1+) 上的 ASP.NET Core MVC 中工作正常,将您的设置放在 app.config 中,但在 ASP.NET 中不起作用.NET Core 上的核心 MVC。

更长的答案:

ASP.NET Core 可以在 .NET Framework 和 .NET Core 上运行,所以我猜迁移路径是暂时继续使用 .NET Framework。

对于 System.Diagnostics 和 Essential.Diagnostics(我参与其中),我至少能够获得在 .NET Framework(而非 .NET Core)上运行的 ASP.NET Core 中运行的演示。

在 .NET Framework 中,TraceSource 等仍然从配置中加载。在 ASP.NET Framework 项目中,将有一个 app.config 文件(不是 web.config),您需要在其中放置配置部分。

注意:只是构建(调试 > 启动新实例)不会更新 bin 目录中的 .exe.config 文件;您需要进行清理或重建,然后进行调试(或删除输出 bin 文件夹)。

您可以直接(对于遗留代码)或通过新的 Microsoft.Extensions.Logging 写入 TraceSource,并配置 Microsoft.Extensions.Logging.TraceSource 提供程序。 (新界面包括一些很好的分层支持功能。)

无论哪种方式,它都会加载并写入配置的 TraceSource,它可以输出到系统 TraceListeners。

您还可以从 Essential.Diagnostics 配置额外的监听器(尽管 RollingFileTraceListener 没有正确处理文件名中的 {AppData} 标记,所以我不得不将路径硬编码到 C:\Temp\Logs)。

以上内容也适用于控制台应用程序(更简单),使用 .NET Framework 4.5.1 及更高版本。

Essential.Diagnostics 中有一些示例代码:https://essentialdiagnostics.codeplex.com/SourceControl/latest#Examples/TestAspNetCoreOnNetFx/Controllers/HomeController.cs

我怀疑它可能与 WCF 类似:.NET Framework 版本应该继续工作,使用 app.config,但 .NET Core 实现可能只是一个 shell。

在 .NET Core 上:

请注意,Essential.Diagnostics 无法在 .NET Core 上运行(截至 2017 年 2 月,它尚不支持),并且大多数系统 TraceListener 类也不受支持。

唯一的是 TextWriterTraceListener,我已经使用手动创建的 TraceSource,但是通过查看 .NET Core 源代码,我认为 TraceSource 还没有自动加载配置的方法.

关于json - Web.config 在 Asp.net 5 mvc6 中消失了,非 Web 配置怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34132558/

相关文章:

javascript - 使用 Webpack 通过 JSON 文件配置 Angular

java - pojo 解析具有无效 java 名称的 gson

javascript - Angularjs 将子对象添加到 Json 对象

javascript - 如何在不继承Controller的类中创建actionlink?

c# - 在 MVC 4 Razor 中加载页面时从数据库加载数据的正确方法

configuration - 德鲁伊设置错误 : service serving this console is not responding

docker - Filebeat没有将日志推送到Elasticsearch

java - 如何从 json 发送 Java Long 值

jquery - 如何解决bootstrap数据表冲突?

angular - 有没有办法在 Angular 项目中列出所有事件的 ESLint/Prettier 规则?