【问题标题】:How to use ASP.NET 4.8 ConfigBuilders with system.serviceModel section of web.config如何将 ASP.NET 4.8 ConfigBuilders 与 web.config 的 system.serviceModel 部分一起使用
【发布时间】:2021-10-21 15:36:40
【问题描述】:

我有一个 ASP.NET 4.8 应用程序,我正在尝试将配置生成器集成到其中。我已经安装了 NuGet 包 Microsoft.Configuration.ConfigurationBuilders.Environment 并将所需的部分添加到 Web.config(此处严重截断)。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
  </configSections>

  <configBuilders>
    <builders>
      <add name="EnvironmentExpand" mode="Expand" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
    </builders>
  </configBuilders>

  <system.serviceModel configBuilders="EnvironmentExpand">
....
  </system.serviceModel>
</configuration>

当我运行应用程序时,我会从每个操作中得到 HTTP 500 响应,消息为 Unrecognized attribute 'configBuilders'。 Visual Studio 中的 Intellisense 还会突出显示 configBuilders 并显示 The configBuilders attribute is not allowed

如果我从system.serviceModel 中删除configBuilders 属性,则应用程序会正常运行,尽管该部分中的占位符当然都没有展开。

如果我从system.serviceModel 中删除configBuilders 属性并将其添加到另一个部分,例如connectionStrings,则应用程序运行并且connectionStrings 部分中的占位符被替换。

显然,system.serviceModel 部分有些不同,但我不明白我可以解决什么问题或如何解决它,以便可以替换其中的占位符。

【问题讨论】:

  • 我对@9​​87654334@ 部分有确切的问题。除了 之外,我几乎在任何部分都得到了“无法识别的属性 'configBuilders'”,这让整个事情对我来说毫无用处。

标签: asp.net service-model asp-net-config-builders


【解决方案1】:

如果您查看您的 machine.config,您会发现 system.serviceModelsectionGroup 而不是 section。 ConfigurationBuilders 仅适用于部分级别。无论好坏,WCF 和 ASP.Net 都将它们的大型配置分为多个部分。

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 2011-07-06
    • 2015-09-30
    • 2012-05-30
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多