建設局プロジェクト総括(三)――ASP.NETによる自動キャプチャ異常と異常処理の実現
建設局のプロジェクトはほぼ終わりに近づいています.最初から最後まで半月も差がないでしょう.半月はいつの間にかこのように過ぎてしまいました.この半月をまとめると、毎日忙しくて、毎日忙しいようですが、よく考えてみると、あまりまともな仕事ができていないようです.全部で次のモジュールを作りました.
賞罰リスト、編集など
企業情報編集申請
企業情報編集レビュー
企業購買依頼リスト
公文書は受理公文書に公布される
汎用自動キャプチャ異常と異常処理
先生は私たちの仕事量が彼の予想を超えたと言っていますが、半月でこれらの仕事量をしました.私たちのチームASPかもしれません.NETは何の基础の原因がないでしょう、ちょうど始まるスピードは确かに少し遅くて、この2日间は主に1つの通用の自动的な捕获の异常と异常の処理をして、ちょうど始まる、ASPを知りません.NETは異常を自動捕獲する仕組みをいくつか提供していたので、初日はうまくいかず、半日の資料を調べて、なんとか2日間で済ませました.
この汎用自動捕獲異常と異常処理の具体的な考え方は実は簡単で、ASP.NETがアプリケーションレベルで異常を処理するコードはすべてGlobalに置かれている.asaxのApplication_Errorイベントの処理:
上記のイベント処理方法では、すべての例外をキャプチャできます.また、例外をログ・ファイルに記録し、開発者にEmailを送信して次のように問題が発生したかを伝えることもできます.
メール:
保存ログ:
汎用的にするために、いくつかの構成情報をxmlに保存し、xmlを解析することでデータを取得し、xmlを解析してデータを取得します.
プロファイルにメールボックスとパスワードの情報があるので、xmlコードは貼らないで、このxmlも簡単で、全部で10行ぐらいです.ここまで
本人がASPに接触したばかりなので、汎用自動捕獲異常と異常処理メカニズムが完成した.NET、だからどうしてもいくつか間違いがあって、大牛にれんがをたたいてもらいます
本文は作者のオリジナルで、転載は出典を説明してください:http://blog.csdn.net/csh624366188/article/details/7268500
賞罰リスト、編集など
企業情報編集申請
企業情報編集レビュー
企業購買依頼リスト
公文書は受理公文書に公布される
汎用自動キャプチャ異常と異常処理
先生は私たちの仕事量が彼の予想を超えたと言っていますが、半月でこれらの仕事量をしました.私たちのチームASPかもしれません.NETは何の基础の原因がないでしょう、ちょうど始まるスピードは确かに少し遅くて、この2日间は主に1つの通用の自动的な捕获の异常と异常の処理をして、ちょうど始まる、ASPを知りません.NETは異常を自動捕獲する仕組みをいくつか提供していたので、初日はうまくいかず、半日の資料を調べて、なんとか2日間で済ませました.
この汎用自動捕獲異常と異常処理の具体的な考え方は実は簡単で、ASP.NETがアプリケーションレベルで異常を処理するコードはすべてGlobalに置かれている.asaxのApplication_Errorイベントの処理:
protected void Application_Error(object sender, EventArgs e) { // Exception objErr = Server.GetLastError().GetBaseException(); string configPath = Server.MapPath("~/Exception.config"); string log = ErroUtil.Write2Log(objErr); ErroUtil.PostEmail(log); Server.ClearError(); Response.Redirect( new XmlParse(configPath).getValue("redirectPath")); }
上記のイベント処理方法では、すべての例外をキャプチャできます.また、例外をログ・ファイルに記録し、開発者にEmailを送信して次のように問題が発生したかを伝えることもできます.
メール:
/// <summary> /// /// /// </summary> /// <param name="log"> </param> public static void PostEmail(string log) {// // , , , string stmpServer = parse.getValue("stmpServer"); string email = parse.getValue("email"); string password = parse.getValue("password"); System.Net.Mail.SmtpClient client = new SmtpClient(stmpServer); client.UseDefaultCredentials = false; client.Credentials = new System.Net.NetworkCredential(email, password); client.DeliveryMethod = SmtpDeliveryMethod.Network; System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.From = new MailAddress(email); mail.To.Add(email); mail.Subject = System.DateTime.Now.ToString() + ""; mail.BodyEncoding = System.Text.Encoding.Default; mail.Body = log; //client.Send(mail); }
保存ログ:
/// <summary> /// , /// /// </summary> /// <param name="objErr"></param> /// <returns></returns> public static string Write2Log(Exception objErr) { string errortime = string.Empty; string erroraddr = string.Empty; string errorinfo = string.Empty; string log = string.Empty; errortime = " :" + System.DateTime.Now.ToString(); //erroraddr = " : " + Request.Url.ToString(); errorinfo = " : " + objErr.Message; System.IO.StreamWriter writer = null; // , , string logFile = parse.getValue("logFile"); string projectName = parse.getValue("projectName"); try { // string year = DateTime.Now.Year.ToString(); string month = DateTime.Now.Month.ToString(); string path = logFile; writer = new System.IO.StreamWriter(path, true); //string ip = " IP:" + Request.UserHostAddress;erroraddr + "<br/>" + ip + log = errortime+" " + projectName+" " + objErr.ToString() + errorinfo + "<br>" + " "; writer.WriteLine(log); } finally { if (writer != null) writer.Close(); } return log; }
汎用的にするために、いくつかの構成情報をxmlに保存し、xmlを解析することでデータを取得し、xmlを解析してデータを取得します.
public class XmlParse { private string filename; // public string nodeName = null;// // ,filename xml public XmlParse(string filename) { this.filename = filename; } public string getValue(string nodeName) { //XmlTextReader reader = new XmlTextReader(filename); XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlNodeList list = doc.DocumentElement.ChildNodes; foreach (XmlNode item in list) { if (item.Name == nodeName) { string s = item.InnerText; return item.InnerText; } } return null; } }
プロファイルにメールボックスとパスワードの情報があるので、xmlコードは貼らないで、このxmlも簡単で、全部で10行ぐらいです.ここまで
本人がASPに接触したばかりなので、汎用自動捕獲異常と異常処理メカニズムが完成した.NET、だからどうしてもいくつか間違いがあって、大牛にれんがをたたいてもらいます
本文は作者のオリジナルで、転載は出典を説明してください:http://blog.csdn.net/csh624366188/article/details/7268500