zqwuwei的技术博客

理论指导实践,在实践中更好的理解理论
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

asp.net 错误不输出行号的问题

Posted on 2011-05-31 16:35  zqwuwei  阅读(379)  评论(0编辑  收藏  举报

今天发现这样一个问题:

同样的一段代码放在不同的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" />”这行代码的注释,行号依然会显示。虽然问题解决了,可是具体原因不明。