16

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

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

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

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

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

谢谢!

4

6 回答 6

21

在 Windows 8 上有类似的问题。

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

检查是否启用了以下功能

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

于 2014-05-27T11:34:17.000 回答
8

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

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

于 2014-08-27T12:30:51.490 回答
7

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

于 2015-07-22T22:39:19.200 回答
3

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

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

也许这个案例对你有帮助。

于 2015-01-13T21:06:13.300 回答
1

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

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

于 2016-12-15T08:53:08.287 回答
0

确保您已启用 HTTP 激活

于 2019-03-26T06:56:41.377 回答