.Net异常发布器的开发(2)

原创 2004年02月10日 12:16:00
下面以一个类便是对发布器进行配置操作,如获取上述三个文件的位置并设置相关配置:
/// <summary>
    /// ExceptionSetting 的摘要说明。
     /// </summary>
     public class ExceptionSetting
     {
         /// <summary>
         /// 获取用于异常处理的文件夹
         /// </summary>
         public static string FilePath
         {
              get
              {
                   string fullpath;
                   if (AppConfig.GetAppSetting("ExceptionPath") != null)
                   {
                       fullpath = AppConfig.GetAppSetting("ExceptionPath");
                       while (fullpath.StartsWith("//"))
                       {
                            fullpath = fullpath.Remove(0,1);
                       }
                   }
                   else
                   {
                       fullpath = Path.GetDirectoryName(Path.GetFullPath("Temp.XML"));
                   }
                   fullpath = Path.GetFullPath(fullpath);
                   fullpath = fullpath + "//";
                   if (!Directory.Exists(Path.GetDirectoryName(fullpath)))
                   {
                       Directory.CreateDirectory(Path.GetDirectoryName(fullpath));
                   }
                   return fullpath;
              }
         }
 
         /// <summary>
         /// 获取或设置用于异常处理的文件夹的字符串
         /// </summary>
         public static string FilePathSettingString
         {
              get
              {
                   return AppConfig.GetAppSetting("ExceptionPath");
              }
              set
              {
                   AppConfig.SaveAppSetting("ExceptionPath",value);
              }
         }
 
         /// <summary>
         /// 获取或设置系统异常记录类型,默认为使用XML文件记录
         /// </summary>
         public static CanUseExceptionLogType ExceptionLogType
         {
              get
              {
                   string exceptionLogType = AppConfig.GetAppSetting("ExceptionLogType");
                   if (exceptionLogType.ToLower().Trim() == CanUseExceptionLogType.SystemLog.ToString().ToLower())
                   {
                       return CanUseExceptionLogType.SystemLog;
                   }
                   else if (exceptionLogType.ToLower().Trim() == CanUseExceptionLogType.All.ToString().ToLower())
                   {
                       return CanUseExceptionLogType.All;
                   }
                   else
                       return CanUseExceptionLogType.XMLFile;
              }
              set
              {
                   AppConfig.SaveAppSetting("ExceptionLogType",value.ToString());
              }
         }
}
 
而下面这一个类则是用于对异常发布器用到的三个文件进行读写的:
/// <summary>
     /// LogAccess 的摘要说明。
     /// </summary>
     public class LogAccess
     {
         /// <summary>
         /// 写入异常处理日志
         /// </summary>
         /// <param name="ds"></param>
         public static void WriteLogFile(ExceptionLogData ds)
         {
              ds.WriteXml(ExceptionSetting.FilePath +"ExceptionLog.XML");
         }
 
         /// <summary>
         /// 读出异常处理日志
         /// </summary>
         /// <returns></returns>
         public static ExceptionLogData ReadLogFile()
         {
              ExceptionLogData ds = new ExceptionLogData();
              if ( !File.Exists(ExceptionSetting.FilePath +"ExceptionLog.XML"))
              {
                   ds.WriteXml(ExceptionSetting.FilePath +"ExceptionLog.XML");
              }
              ds.Clear();
              ds.ReadXml(ExceptionSetting.FilePath +"ExceptionLog.XML");
              return ds;
         }
 
         /// <summary>
         /// 读出自定义通用信息
         /// </summary>
         /// <returns></returns>
         public static CustomOutMessageData GetCustomOutMessage()
         {
              CustomOutMessageData ds = new CustomOutMessageData();
              if ( !File.Exists(ExceptionSetting.FilePath +"CustomOutMessage.XML"))
              {
                   ds.WriteXml(ExceptionSetting.FilePath +"CustomOutMessage.XML");
              }
              ds.Clear();
              ds.ReadXml(ExceptionSetting.FilePath +"CustomOutMessage.XML");
              return ds;
         }
 
         /// <summary>
         /// 写入自定义通用信息
         /// </summary>
         /// <param name="ds"></param>
         public static void SaveCustomOutMessage(CustomOutMessageData ds)
         {
              ds.WriteXml(ExceptionSetting.FilePath +"CustomOutMessage.XML");
         }
 
         /// <summary>
         /// 获取异常处理定义信息
         /// </summary>
         /// <returns>读取到的异常处理定义信息</returns>
         public static ExceptionDetailData GetExceptionDetail()
         {
              ExceptionDetailData exceptionDetailDS = new ExceptionDetailData();
              if ( !File.Exists(ExceptionSetting.FilePath +"ExceptionList.xml"))
              {
                   exceptionDetailDS.WriteXml(ExceptionSetting.FilePath +"ExceptionList.xml");
                   FileStream fs = new FileStream(ExceptionSetting.FilePath +"ExceptionList.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                   StreamWriter w = new StreamWriter(fs);
                   w.BaseStream.Seek(0, SeekOrigin.End);
                   w.Write("/n/n<!--/nType:异常的类型,系统依据此值和下面的InMessage一起判定异常的处理方式,此值与异常类型的完全限定名严格相等,不区分大小写;/nInMessage:异常信息中的关键字,系统依据此关键字和上面的异常类型一起判定异常的处理方式,关键字最多可以有四个,不区分大小写,有层次关系;/nHelpLink:自定义的有关异常的帮助文件路径;/nOutMessage:自定义的向用户显示的友好信息。/n-->");
                   w.Flush();
                   w.Close();
              }
              exceptionDetailDS.Clear();
              exceptionDetailDS.ReadXml(ExceptionSetting.FilePath +"ExceptionList.xml");
              return exceptionDetailDS;
         }
 
         /// <summary>
         /// 保存异常处理定义信息
         /// </summary>
         /// <param name="exceptionDetailDS">要保存的异常处理定义信息</param>
         public static void SaveExceptionDetail(ExceptionDetailData exceptionDetailDS)
         {
              exceptionDetailDS.WriteXml(ExceptionSetting.FilePath +"ExceptionList.xml");
              FileStream fs = new FileStream(ExceptionSetting.FilePath +"ExceptionList.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite);
              StreamWriter w = new StreamWriter(fs);
              w.BaseStream.Seek(0, SeekOrigin.End);
              w.Write("/n/n<!--/nType:异常的类型,系统依据此值和下面的InMessage一起判定异常的处理方式,此值与异常类型的完全限定名严格相等,不区分大小写;/nInMessage:异常信息中的关键字,系统依据此关键字和上面的异常类型一起判定异常的处理方式,关键字最多可以有四个,不区分大小写,有层次关系;/nHelpLink:自定义的有关异常的帮助文件路径;/nOutMessage:自定义的向用户显示的友好信息。/n-->");
              w.Flush();
              w.Close();
         }
}
 
(未完待续)

webservice中发布服务端遇到的异常

在写webservice的过程中,运行服务端的程序,遇到了一些异常,下面贴出这些异常信息,以及我的解决方法: 1、异常信息1Exception in thread "main" com.sun.xm...
  • wzuden
  • wzuden
  • 2016年11月07日 19:33
  • 2729

Stanford机器学习---第十一讲.异常检测

之前一直在看Standford公开课machine learning中Andrew老师的视频讲解 https://class.coursera.org/ml/class/index 同时配合csd...
  • l281865263
  • l281865263
  • 2015年06月26日 21:38
  • 9133

IIS部署webservice以及常见问题总结

本人最近在尝试通过IIS发布webservice,以下是一些经验总结,希望有所帮助。 在win7系统上部署IIS发布webservice 1.        webservice的机制:将发布we...
  • du_peiduo
  • du_peiduo
  • 2013年12月13日 13:38
  • 8702

Windows应用程序开发入门到精通七:优化.NET异常处理

  • 2009年10月13日 12:10
  • 32.46MB
  • 下载

Essential Studio for ASP.NET MVC发布2017 v2,增加日期范围选择器功能

Essential Studio for ASP.NET MVC是一个帮您轻松创建高性能Web应用程序的ASP.NET MVC界面开发包,它包含了几乎所有企业级Web应用程序开发所需要的控件,如Gri...
  • Harriet666
  • Harriet666
  • 2017年05月25日 11:41
  • 818

ASP.NET项目开发中的异常处理

ASP.NET项目开发中的异常处理               前言:异常的处理在项目开发中是很有必要的,异常的处理不仅仅只是try..catch..finally就完事了的。异常处理绝对可以称开...
  • huwei2003
  • huwei2003
  • 2013年05月04日 11:01
  • 813

ASP.NET项目开发中的异常处理

前言:异常的处理在项目开发中是很有必要的,异常的处理不仅仅只是try..catch..finally就完事了的。异常处理绝对可以称开发中的重要组成部分。必须正确的面对异常,由于即使是最能干的开发职员,...
  • zoohouse
  • zoohouse
  • 2011年02月15日 18:04
  • 1878

Asp.net Web Api开发(第三篇)自定义异常过滤器

Asp.net Web Api开发(第三篇)自定义异常过滤器
  • yeqi3000
  • yeqi3000
  • 2016年06月17日 13:51
  • 3232

使用axis开发webservice服务java.net.ConnectException: Connection refused: connect异常的解决办法

最近使用axis开发webservice服务,本机调用一切正常,但是其他人却访问不了,报错信息为: AxisFault  faultCode: {http://schemas.xmlsoap.or...
  • zhengzhb
  • zhengzhb
  • 2012年07月12日 17:26
  • 34797

Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码

1、用户登录  验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码。  引入...
  • LanSeTianKong12
  • LanSeTianKong12
  • 2017年06月17日 18:21
  • 372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.Net异常发布器的开发(2)
举报原因:
原因补充:

(最多只允许输入30个字)