【发布时间】:2020-09-22 07:59:19
【问题描述】:
我们在 .Net 4.7.2 上运行 MVC 5 应用程序,并使用 IIS 10 托管它。调查应用程序冻结两分钟后,我得出的结论是配置的 IIS 404 错误页面和应用程序重定向逻辑反弹互不相让。
删除 IIS 错误页面,它变得更奇怪了:现在我看到我们页面上方的默认 IIS 错误是抛出 404 时:
“1”就在正文的开头,因此我猜它一定是 IIS 插入了错误消息。我已经删除了站点以及 IIS 本身上的错误页面。我也更改了文本
%SystemDrive%\inetpub\custerr\\404.htm
检查它是否仍然被提取,但事实并非如此。不幸的是,在谷歌上搜索这类问题时,我通常只找到关于 404 本身的问题或对错误页面的一般帮助,如 https://docs.microsoft.com/en-us/iis/configuration/system.webserver/httperrors/,但没有一个提到附加消息。
由于我们在应用程序中有自定义错误页面,我不希望显示 IIS 错误。是否有某种我不知道的隐藏 IIS 逻辑可以做到这一点?
编辑解决方案:有人添加了一个新的 IHttpModule,它对响应执行刷新。这通常是一个非常糟糕的主意,请参见此处的示例:https://forums.iis.net/t/993221.aspx?Response+Flush+breaks+IIS+s+Custom+Errors+。
我猜是因为 flush 和 httpErrors existingResponse=auto,IIS 没有清除响应流而是预先插入了他的错误。
为了规避这个问题,我将其配置为existingResponse=PassThrough,因为无论如何我们都有一个自定义错误页面。
【问题讨论】:
-
您需要删除任何cookies吗? cookie 可能导致重定向到您删除的旧页面。查看嗅探器以帮助解决问题。
标签: c# asp.net asp.net-mvc iis