赶了几个月的项目终于开始实施了,赶出来的东西,总是有不少问题。。。
新的模块只用了Enterprise Library的部分功能,比较重要的Log功能没有用起来。于是当客户打过来说啥啥啥出错了时,我却无从获取错误信息。
怎么办,先在Global文件里塞一些代码做应急处理吧,于是搜了一段发送邮件的代码,组织一下出错信息往自己的邮箱发邮件。
当时突发奇想,为什么要自己组织出错信息呢,默认返回的错误页面多好,信息完整,也很直观。
说干就干,首先想到的是Response对象,管输出的嘛,会不会藏着输出的内容呢,可是查了不少关于Response的介绍,没有提到有直接的方法获取当前输出流的。
然后尝试Page的HTML输出事件Render,结果发现代码抛出异常时这个事件根本不执行。这就怪了,在我的概念里,动态页面总要有代码负责输出HTML的,错误页面也是动态生成的吧,不在Render中生成,跑哪生成。
最后干脆尝试页面生命周期中最靠后的EndRequest事件,依旧失败。
已经没招了,搬出了HttpWatch,至少知道了代码异常属于500错误。在IIS里查看了各种错误的处理方式,也没发现什么。