今天发现这样一个问题:
同样的一段代码放在不同的Web应用程序下,结果输出的错误信息不同。
Asp.aspx.cs页面源码:
protected void Page_Load(object sender, EventArgs e)
{
try
{
throw new Exception();
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
}
}
区别在于:
一个项目(项目A)的abc.aspx的输出为:
在 A.abc.Page_Load(Object sender, EventArgs e) 位置 E:\ResearchChina\SurveyLeague\SurveyLeague.Center\zT.aspx.cs:行号 16
另一个项目(项目B)的abc.aspx的输出为:
在 B.abc.Page_Load(Object sender, EventArgs e)
我们发现项目B的输出的错误信息里没有包含行号,这让人很费解。
重启iis,重新生成项目都不管用。后来我把项目B的源码复制一份,把其中的所有除仅仅包含上面那段代码的页面删除后,还是不管用。最后只剩下Web.config文件了,我把Web.config文件的空行删掉几行,保存文件,仍然不显示行号。再后来我把Web.config文件中的“<directoryBrowse enabled="true" />”这行代码注释下,再刷新下abc.aspx,终于出现行号了。但是我再取消“<directoryBrowse enabled="true" />”这行代码的注释,行号依然会显示。虽然问题解决了,可是具体原因不明。