为啥 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 源代码?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的IIS打不开网站 报500的错误

win7旗舰版安装了IIS7添加虚拟目录后浏览asp网页显示空白是为啥?也不显示错误,知道的帮忙解决下

IIS6.0设置了404错误,对htm和aspx、asp都好用,对html不起作用

IIS6.0 ,网站上的html可以正常访问,asp提示找不到页面 错误 404 Aspx可以正常访问。很是纠结

php会话数据有时会丢失

vs2008编辑aspx页面时,经常会session失效,就得重新登录系统,这是为啥?!