是否可以将 Microsoft.Extensions.Configuration 库与 ASP.NET 5 集成?
Posted
技术标签:
【中文标题】是否可以将 Microsoft.Extensions.Configuration 库与 ASP.NET 5 集成?【英文标题】:Is it possible to integrate Microsoft.Extensions.Configuration library with ASP.NET 5? 【发布时间】:2018-03-20 17:11:02 【问题描述】:我决定将我的一个 ASP.NET MVC 5 应用程序迁移到 ASP.NET Core 2,但我希望两个版本都能正常工作。我已经将所有类库迁移到 .NET Standard(以便我可以在两个项目中使用它们)并且想使用 Microsoft.Extensions.Configuration 标准库来管理应用程序设置。
虽然在 ASP.NET Core 2.0 中使用此配置库不是问题,但我找不到在 ASP.NET MVC 5 应用程序中正确加载 web.config 文件的方法。这是我当前用于加载 web.config 文件的代码:
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddXmlFile("web.config");
_configuration = configurationBuilder.Build();
但是,每次我运行应用程序时,都会收到异常:System.FormatException: A duplicate key 'appSettings:add:key' was found'appSettings:add:key'
。我仔细检查了文件,没有重复的密钥,所以我猜这是兼容性的问题。是否有人将 MS 配置库与 ASP.NET MVC 5 一起使用并找到了正确使用 stadnard web.config 文件的方法?
【问题讨论】:
您最终找到解决方案了吗? 抱歉回答晚了。暂时,我创建了一些丑陋的解决方案,然后我决定放弃 MVC 5 项目,所以没有必要解决这个问题。但是,您可以查看此处提供的答案:benfoster.io/blog/net-core-configuration-legacy-projects。上一节中提到的LegacyConfigurationProvider
看起来像是可以使其工作的解决方案
不用担心。感谢您抽出宝贵时间回复!
【参考方案1】:
现在在更高级别上定义了一些键,您需要避免在配置中重复它。
例如,在我删除键之前,我在加载时遇到了同样的错误:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusivejavascriptEnabled" value="true" />
【讨论】:
感谢您的回复。不幸的是,即使删除了默认键,我在应用程序中使用的自定义应用程序设置也会引发异常。此外,即使在删除所有 app.settings 之后,在<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
部分开始的行开始抛出另一个异常。异常声明“asp.net web.config 不支持 XML 命名空间”以上是关于是否可以将 Microsoft.Extensions.Configuration 库与 ASP.NET 5 集成?的主要内容,如果未能解决你的问题,请参考以下文章