为啥 IIS 有时会显示错误页面的 aspx 源代码?
Posted
技术标签:
【中文标题】为啥 IIS 有时会显示错误页面的 aspx 源代码?【英文标题】:Why does IIS sometimes displaying the aspx source code for an error page?为什么 IIS 有时会显示错误页面的 aspx 源代码? 【发布时间】:2021-06-15 04:37:42 【问题描述】:我有一个在 IIS 上托管的 asp.net Web 表单网站。除了错误页面外,一切都按预期工作。我在 web.config 中有如下自定义错误页面设置:
<customErrors mode="On" defaultRedirect="error.aspx">
<error statusCode="400" redirect="error.aspx" />
<error statusCode="401" redirect="error.aspx" />
<error statusCode="403" redirect="error.aspx" />
<error statusCode="404" redirect="error.aspx" />
<error statusCode="500" redirect="error.aspx" />
</customErrors>
如果我访问 mysite.com/x.aspx(x.aspx 不存在),它会正确显示错误页面。但是,如果我访问 mysite.com/x(x 不存在),aspx 源代码会显示在浏览器中(以“
关于为什么会发生这种情况以及如何解决的任何想法?
【问题讨论】:
【参考方案1】:ASP.net 没有收到那些“无扩展”请求,而是由静态文件处理程序处理。
基本上,您需要安装 URLReWrite 模块并将无扩展名的请求重写/重定向到您的 error.aspx 页面。各种examples on SO for handling extensionless URLs
【讨论】:
【参考方案2】:尝试在您的 web.conifg 文件中使用以下代码:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>
确保 IIS 管理器中的错误页面 -> 功能委派设置为读/写。
【讨论】:
以上是关于为啥 IIS 有时会显示错误页面的 aspx 源代码?的主要内容,如果未能解决你的问题,请参考以下文章
win7旗舰版安装了IIS7添加虚拟目录后浏览asp网页显示空白是为啥?也不显示错误,知道的帮忙解决下
IIS6.0设置了404错误,对htm和aspx、asp都好用,对html不起作用