打印

[asp.net教程] 用asp.net将网页错误信息写入系统日志(1)

用asp.net将网页错误信息写入系统日志(1)

设计网站的时候,不可能我们的网站不出现一点错误,常见的“页面不存在”“页面运行出错”等错误信息一般网站多少总是存在的,关键是,这些错误出现以后,管理员怎样方便及时的发现它们、尽量减少用户对网站的不好印象。不管是iis 4还是iis 5,我们都可以设置网站的“自定义错误信息”,通过这样的设置,一些系统默认的比较不友好的错误信息就可以更换为网站管理员自定义的页面,这对于网站的实用和友好性都大有帮助。但是,我们在使用过程中却发现一个比较不方便的问题,当我们查看网站日志的时候,我们发现了这些错误页面的出现,但是,却不能在系统事件查看这些错误信息。而在网站的日志部分查看这些错误信息又比较麻烦,有没有办法可以直接将产生的错误信息象安全日志一样保存在系统日志部分呢?asp.net现在就可以做到。现在,我们一步步学习怎样实现这个功能。

  一、建立eventlog虚拟目录
  实现,我们在我们的网站建立一个名为“eventlog”的虚拟目录,具体建立方法如下:在win2000中,打开“开始”->“程序”->“管理工具”->“internet信息服务”,找到建立的网站,邮件点击选择“新建”,在弹出的菜单选择“虚拟目录”,然后按照向导设置即可。
  二、修改web.config文件
  我们知道,在web.config文件中,我们可以象iis的“自定义错误信息”页面一样设置错误信息页面的位置和错误信息是否显示等。为了实现本文提到的功能,我们需要适当修改web.config文件,打开“customerrors mode”为“on”,目的是非地计算机用户只能得到友好(自定义)的错误信息,具体设置如下:
  <configuration>
  <system.web>
  <customerrors mode="on" defaultredirect="/eventlog/customerrorpage.aspx">
  <error statuscode="404" redirect="/eventlog/404page.aspx"/>
  <error statuscode="403" redirect="/eventlog/403page.aspx"/>
  </customerrors>
  </system.web>
  </configuration>
  在以上的设置中,我们看到,当404和403错误产生的时候,会将页面转到刚才我们设置eventlog虚拟目录的相应页面。
  三、建立其他文件
  为了试验我们的设置是否成功,首先,我们必须设立一个可以产生错误的页面default.aspx,这个页面的代码如下:
  default.aspx 页面代码
  <% @language="vb" %>
  <script language="vb" runat=server>
  sub page_load(sender as object, e as eventargs)
  if ispostback then
  '定义变量
  dim x as integer
  dim y as integer
  dim z as integer
   
  x = 1
  y = 0
   
  '产生错误
  z = x/y
  end sub
  </script>
   
  <html>
  <head>
  </head>
  <body>
  <form method="post" action="eventlog.aspx" name="form1" id="number">
  <asp:button id="abutton" type="submit" text="点击产生错误" runat="server" />
  </form>
  </body>
  </html>
  以上代码我们设计了一个除零的错误页面,显然,按钮提交时这个页面肯定出错,我们需要查看是否错误会加入系统日志。现在,我们来看错误页面的代码,这里,我们可能用到三个错误页面customerrorpage.aspx、404page.aspx、403page.aspx,这些页面都放在虚拟目录 eventlog下。它们的代码分别如下:
  customerrorpage.aspx 代码
  <html>
  <head></head>
  <body>
  <h1>custom error page</h1>
  </body>
  </html>
  404page.aspx(页面没找到错误) 代码
  <html>
  <head></head>
  <body>
  <h1>404 error page</h1>
  </body>
  </html>
   
  403page.aspx(权限错误)代码
  <html>

TOP

返回顶部
AYBlue

Processed in 0.049678 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-10 12:04 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP