Json Asp.net 5 mvc6中没有Web.config,非Web配置如何?

Json Asp.net 5 mvc6中没有Web.config,非Web配置如何?,json,asp.net-mvc,configuration,Json,Asp.net Mvc,Configuration,上下文 在asp.net 5vNextMVC6中,Web.config消失了,取而代之的是json文件作为配置。但是,在我的web.config中,我设置了WCF客户端、系统.Diagnostics和Essential.Diagnostics的跟踪侦听器,以及这些组件(WCF客户端和跟踪侦听器在启动时显然无法读取json)。所以在vNext中,微软显然放弃了系统配置 问题 是否有一些迁移路径,因此我不必完全重写,以便使这些组件在启动时读取配置信息?简短回答:它在.NET Framework(4.

上下文

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

问题


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

简短回答:它在.NET Framework(4.5.1+)上的ASP.NET Core MVC中工作正常,将您的设置放在app.config中,但在.NET Core上的ASP.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文件;您需要进行清理或重建,然后进行调试(或删除output bin文件夹)

您可以直接写入TraceSource(对于旧代码),也可以通过配置了Microsoft.Extensions.Logging.TraceSource提供程序的新Microsoft.Extensions.Logging写入TraceSource。(新界面包括一些不错的分层支持功能。)

无论哪种方式,它都将加载并写入已配置的TraceSource,该TraceSource可以输出到系统TraceListener

您还可以从Essential.Diagnostics配置其他侦听器(尽管RollingFileTraceListener没有正确处理文件名中的{AppData}标记,因此我必须硬编码到C:\Temp\Logs的路径)

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

Essential.Diagnostics中有一些示例代码:

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

在.NET核心上:

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


唯一的一个是TextWriterTraceListener,我已经使用了手动创建的TraceSource,但是从.NET核心源代码来看,我认为TraceSource还没有自动加载配置的方法。

Telerik关于这方面的好文章