【问题标题】:Is it possible to integrate Microsoft.Extensions.Configuration library with ASP.NET 5?是否可以将 Microsoft.Extensions.Configuration 库与 ASP.NET 5 集成?
【发布时间】:2023-03-07 21:01:01
【问题描述】:

我决定将我的一个 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 看起来像是可以使其工作的解决方案
  • 不用担心。感谢您抽出宝贵时间回复!

标签: c# asp.net asp.net-mvc asp.net-core-mvc


【解决方案1】:

现在在更高级别上定义了一些键,您需要避免在配置中重复它。

例如,在我删除键之前,我在加载时遇到了同样的错误:

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

【讨论】:

  • 感谢您的回复。不幸的是,即使删除了默认键,我在应用程序中使用的自定义应用程序设置也会引发异常。此外,即使在删除所有 app.settings 之后,在 &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt; 部分开始的行开始抛出另一个异常。异常声明“asp.net web.config 不支持 XML 命名空间”
猜你喜欢
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 2015-10-23
  • 2015-11-22
  • 2023-03-12
  • 2018-05-29
  • 2020-03-20
  • 2013-04-07
相关资源
最近更新 更多