2012-05-25 131 views
4

我们有一个以传统asp编写的遗留网站。我们把它托管在iis6上。无论何时出现错误,它都会将错误的详细信息和描述发送给客户。IIS 7在经典ASP中不显示错误。 IIS 6是否

事情是,我们把它移到IIS7后,一些“错误”不会显示出来。例如

<% 
sdfkjlsfjl 
%> 

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

<% 
if a=1 
end if 
%> 

,将在这两个服务器就扔失踪“然后”

,有没有人面对过这样的错误?

谢谢

+0

如果你得到一个空白屏幕(甚至没有默认的500错误屏幕),它听起来像传统的ASP尚未安装。默认情况下,IIS7不包含经典的ASP处理程序:http://learn.iis.net/page.aspx/562/classic-asp-not-installed-by-default-on-iis/ –

回答

0

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

但是我怀疑你的代码实际上是On Error Resume Next。此陷阱运行时错误,如您的第一个示例代码。但是,您的第二个示例包含汇编错误。语法错误不能被捕获,脚本甚至不会开始执行。相反,ASP将编译错误以500.100状态返回到IIS。

另一个不太可能的情况是您的响应缓冲关闭,并且一些以前发送给浏览器的奇怪内容正在使错误不可见(尝试使用视图源来确认)。

4

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

  1. 打开IIS管理器
  2. 在功能视图中,双击ASP。
  3. 在那里您将看到一个“调试属性”部分
  4. 在您想要更改的属性上从False更改为True。
  5. 重新启动IIS
  6. 测试以查看错误是否正在发送到浏览器。
0

IIS,下特点 ... ASP ... 调试属性

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

如果你想看到实际的错误在服务器上发生,而不是错误...然后

将错误发送到浏览器