只允许一个 <configSections> 元素。它必须是根 <configuration> 元素的第一个子元素- HTTP Error 500.19

这还是我第一次遇到这个错误,以前都没太注意配置文件中元素的放置顺序。这次在调试一个ASP.NET MVC项目的时候,突然就爆出HTTP Error 500.19错误,提示无法访问请求的页面,因为该页的相关配置数据无效。

根据网页提供的错误信息,主要原因是configSections元素必须是configuration元素的第一个子元素。而我原本的配置信息如下(错误的):

<configuration>
  <connectionStrings>    
    <add name="SqlConnectionString" connectionString="Server=192.168.0.199;Database=TestWebDb; UID=sa;PWD=123;" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <configSections>
    <section name="botDetect" requirePermission="false" type="BotDetect.Configuration.BotDetectConfigurationSection, BotDetect" />
  </configSections>
</configuration>

正确应该把configSections元素放在configuration元素下的第一顺位:

<configuration>    
  <configSections>
    <section name="botDetect" requirePermission="false" type="BotDetect.Configuration.BotDetectConfigurationSection, BotDetect" />
  </configSections>
  <connectionStrings>    
    <add name="SqlConnectionString" connectionString="Server=192.168.0.199;Database=TestWebDb; UID=sa;PWD=123;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>   

相关错误信息和截图:

HTTP ERROR 500.19错误截图

配置文件设置错误

当读取 Web 服务器或 Web 应用程序的配置文件出现问题时,就会发生此错误。在某些情况下,事件日志会包含有关导致此错误的原因的更多信息。

出处:http://shiyousan.com/post/636347845422823189

原文地址:https://www.cnblogs.com/hedianzhan/p/8401744.html