web.config 的 System.webServer 和 System.web 部分

Posted

技术标签:

【中文标题】web.config 的 System.webServer 和 System.web 部分【英文标题】:System.webServer and System.web sections of web.config 【发布时间】:2011-10-28 16:49:22 【问题描述】:

在 web.config 中使用两个单独的部分来定义错误文档有什么意义?

<system.webServer>
...
   <httpErrors errorMode="Custom">
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="404" prefixLanguageFilePath="" path="/ErrorPage_404.aspx" responseMode="ExecuteURL" />
   </httpErrors>
...
</system.webServer>

<system.web>
...
   <customErrors defaultRedirect="/Forms/Errors/Error.aspx" mode="On">
      <error statusCode="404" redirect="/ErrorPage_404.aspx" />
   </customErrors>
...
</system.web>

如果我删除第一部分,IIS7 将不会显示错误页面。如果我删除第二个,我的 VS 调试器将不会显示错误页面。

【问题讨论】:

您是否将应用程序迁移到 .Net Framework 4.0 或 IIS 7.5 并且之前在 IIS 6 之后运行过 int? 【参考方案1】:

我一直以为system.web适用于IIS6及以下,而system.webServer适用于IIS7+,但实际上似乎真正的答案是system.web通过其处理程序映射是针对.aspx / .asp页面的,其他一切都通过 system.webServer。

Have a look at this webpage for a pretty clear explanation.

【讨论】:

以上是关于web.config 的 System.webServer 和 System.web 部分的主要内容,如果未能解决你的问题,请参考以下文章

web.config 覆盖 app.config ...为啥?

app.config/web.config 中的变量

Web.config总结

调试/发布环境web.debug.config和web.release.config不存在

Web.Debug.config 和 Web.Release.Config 文件有啥用?

vs2015 工程中 Web.Release.config和Web.Debug.config文件无效的处理办法