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 ...为啥?
调试/发布环境web.debug.config和web.release.config不存在