Response.TrySkipIisCustomErrors不起作用

mer*_*erk 15 asp.net iis c#-4.0

我有一个页面,我希望页面返回404响应,但保留在该页面上.请不要问为什么 - 即使在我与他讨论之后,客户也希望如此.

我在iis 8下运行了一个用C#编写的.net页面,并且应用程序池配置为在4.0集成模式下运行

当我在页面中将状态代码设置为404时,它将被发送到为此站点设置的自定义404错误页面.谷歌搜索后,我发现使用Response.TrySkipIisCustomErrors在SO提及的另一篇文章.从我读到的内容听起来就像是我需要的.我尝试将其设置为true并且它对页面的行为没有影响 - 仍然会被发送到在iis中设置的客户404错误页面.

任何人都有任何想法为什么这不起作用?

mer*_*erk 21

嗯 - 这是第一次.我第一次在点击提交按钮之前找到了答案:)

找到这个IIS.net文章:http://www.iis.net/configreference/system.webserver/httperrors 然后引导我找到这个:http: //msdn.microsoft.com/en-us/library/ms690576( v = VS.90)的.aspx

向下滚动到解释选项existingResponse含义的部分.我把我的设置设置为Replace意味着它TrySkipIisCustomErrors完全忽略了.改成它Auto并且它正在工作.

  • 感谢您回答自己的问题,您的链接指向了正确的解决方案:`<httpErrors existingResponse ="PassThrough"/>` (6认同)
  • 代码中的另一个选项是 Response.TrySkipIisCustomErrors AND Response.SuppressFormsAuthenticationRedirect。我发现所有其他错误代码都可以接受 401,当使用表单身份验证时,IIS 喜欢将其作为 200 重定向到登录页面。希望这可以帮助某人。 (2认同)