这还是我第一次遇到这个错误,以前都没太注意配置文件中元素的放置顺序。这次在调试一个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>
相关错误信息和截图:
当读取 Web 服务器或 Web 应用程序的配置文件出现问题时,就会发生此错误。在某些情况下,事件日志会包含有关导致此错误的原因的更多信息。