为什么在IIS 8.5(Win 2012 R2)中为asp.net错误提供“200 OK”的空白页?

问题描述 投票:14回答:6

我已经设置了一个运行IIS 8.5的新Windows 2012 R2服务器。

我们注意到,当发生错误(例如,ASP.NET状态服务未运行)而不是输出500状态代码错误屏幕时,请求实际上返回一个完全空白的页面(只有标题 - 没有内容)。我们显然需要查看错误并为错误提供200 OK可能对Google等索引器或任何wesite监控工具(这不会通知我们该网站已脱机)存在问题。

在我们的其他服务器(IIS 7)上,我们看到“黄色错误屏幕”,其中包含“无法连接到状态服务器”(或类似)的消息。

这可能有什么问题?是否有一些设置可以全局禁用所有错误(但如果它还提供200状态代码,这将是愚蠢的)或者其他可能阻碍其他方式?

唯一可能干扰的是我们在服务器上安装了ISAPI_Rewrite(但这通常不会导致这个问题)。

谢谢!

asp.net iis iis-8 isapi-rewrite windows-server-2012-r2
6个回答
20
投票

在Windows 8上有类似的问题。

在设置中搜索“打开或关闭Windows功能”。

检查是否已启用以下功能

“/ Internet信息服务/万维网服务/常见HTTP功能/ HTTP错误”。 “/ Internet信息服务/万维网服务/通用HTTP功能/静态内容”。


6
投票

您需要确保ASP模块中未启用服务器端调试。

经典ASP服务器500错误返回200。尝试打开服务器端调试应用程序,然后找不到,IIS随后返回200响应和空白页面。


4
投票

确保你没有在Global.asax.cs的Application_Error中调用Server.ClearError(),这最终成了我的问题。


3
投票

删除所有Global.asax代码帮助我找到错误的原因。

之后,IIS开始按预期返回错误页面。然后,在应用修复程序后,我返回了Global.asax代码。

也许这个案例会帮助你。


1
投票

请求Default.aspx时我遇到了类似的问题(在目录中设置为页面默认值)。服务器返回状态200,但内容为空。

在这种情况下,它可以将应用程序池的托管管道模式从集成切换到经典。


0
投票

确保已启用HTTP激活

© www.soinside.com 2019 - 2024. All rights reserved.