![IIS 7.5 上的 ASP 详细错误消息](https://linux22.com/image/522609/IIS%207.5%20%E4%B8%8A%E7%9A%84%20ASP%20%E8%AF%A6%E7%BB%86%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF.png)
我在 IIS 7.5 上运行一些(外部编写的) ASP 时遇到了真正的问题。
ASP 已设置好,并且我在文章中提到的两个地方启用了错误消息,例如http://weblogs.asp.net/nannetthethacker/archive/2009/01/09/enabling-asp-classic-error-messages-in-iis7-and-windows-web-server-2008.aspx,但我没有收到正确的错误消息。
举例来说,此 ASP 页面按预期运行(屏幕上显示“hello world”):
hello
<%
Response.Write "world"
%>
有趣的是,如果我强制编译错误,我会得到详细的错误:
hello
<%
Response.Write "world";
%>
生成:
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/test.asp, line 3
Response.Write "world";
----------------------^
但是,如果我更改代码以致于产生运行时错误,它就会默默失败:
hello
<%
Dim x: x = Int("hello world")
Response.Write "world"
%>
这将输出:
hello
即没有错误,没有“world”,什么都没有。在 Fiddler 中跟踪请求/响应显示它似乎就停止在这一点上。我在服务器上看不到任何记录错误的内容。
为这个问题苦恼了好一阵子——我就是不知道到底是什么导致了这个错误。
答案1
我找到了问题的原因。如果在应用程序池中将“启用 32 位应用程序”设置为 True,则不会收到运行时错误。将其设置为 False 会显示运行时错误。