4

我们有一个用经典 asp 编写的旧网站。我们将它托管在 iis6 上。每当出现错误时,它都会将错误的详细信息和描述发送给客户端。

问题是,在我们将其移至 IIS7 后,一些“错误”不会出现。例如

<% 
sdfkjlsfjl
%>

这将在 iis6 上触发错误,但在 iis7 上它会简单地显示一个空白屏幕。另一方面,如果我这样做

<%
if a=1
end if
%>

它会在两个服务器中引发关于缺少“然后”的错误

有人遇到过这个吗?

谢谢

4

3 回答 3

4

在 IIS7 中,您需要为 ASP 启用客户端调试。

  1. 打开 IIS 管理器
  2. 在功能视图中,双击 ASP。
  3. 在那里你会看到一个“调试属性”部分
  4. 将要更改的属性从 False 更改为 True。
  5. 重新启动 IIS
  6. 测试以查看错误现在是否正在发送到浏览器。
于 2012-05-25T23:16:49.330 回答
0

我无法重现您在 IIS7 上描述的行为。

但是,我怀疑您的代码中实际拥有的是On Error Resume Next. 这会捕获运行时错误,例如您的第一个示例代码。但是,您的第二个示例包含编译错误。语法错误是不可捕获的,脚本甚至不会开始执行。相反,ASP 将编译错误以 500.100 状态返回给 IIS。

另一个不太可能的可能性是您关闭了响应缓冲,并且之前已经发送到浏览器的一些奇怪内容使错误不可见(尝试使用查看源来确认)。

于 2012-05-25T17:08:34.783 回答
0

IIS中,在Features ... ASP ... Debugging Properties下:

启用服务器端调试设置为False。这将治愈死亡的空白屏幕。

如果您想查看实际错误而不是服务器上发生错误...那么

Send Errors to Browser设置为True

于 2015-10-22T01:54:11.403 回答