我们有一个用经典 asp 编写的旧网站。我们将它托管在 iis6 上。每当出现错误时,它都会将错误的详细信息和描述发送给客户端。
问题是,在我们将其移至 IIS7 后,一些“错误”不会出现。例如
<%
sdfkjlsfjl
%>
这将在 iis6 上触发错误,但在 iis7 上它会简单地显示一个空白屏幕。另一方面,如果我这样做
<%
if a=1
end if
%>
它会在两个服务器中引发关于缺少“然后”的错误
有人遇到过这个吗?
谢谢
我们有一个用经典 asp 编写的旧网站。我们将它托管在 iis6 上。每当出现错误时,它都会将错误的详细信息和描述发送给客户端。
问题是,在我们将其移至 IIS7 后,一些“错误”不会出现。例如
<%
sdfkjlsfjl
%>
这将在 iis6 上触发错误,但在 iis7 上它会简单地显示一个空白屏幕。另一方面,如果我这样做
<%
if a=1
end if
%>
它会在两个服务器中引发关于缺少“然后”的错误
有人遇到过这个吗?
谢谢
在 IIS7 中,您需要为 ASP 启用客户端调试。
我无法重现您在 IIS7 上描述的行为。
但是,我怀疑您的代码中实际拥有的是On Error Resume Next
. 这会捕获运行时错误,例如您的第一个示例代码。但是,您的第二个示例包含编译错误。语法错误是不可捕获的,脚本甚至不会开始执行。相反,ASP 将编译错误以 500.100 状态返回给 IIS。
另一个不太可能的可能性是您关闭了响应缓冲,并且之前已经发送到浏览器的一些奇怪内容使错误不可见(尝试使用查看源来确认)。
在IIS中,在Features ... ASP ... Debugging Properties下:
将启用服务器端调试设置为False。这将治愈死亡的空白屏幕。
如果您想查看实际错误而不是服务器上发生错误...那么
将Send Errors to Browser设置为True。