`

一个比较好的.net 3.5的异常报告类

    博客分类:
  • .NET
阅读更多
发现了一个比较好的异常报告类,其中用到了.net 3.5以上的扩展方法的机制,
实现的是当有异常时,发邮件报告
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;

namespace Experiement
{
    public static class MyExtension
    {
        public static void SendErrorEmail(this Exception ex)
        {
            MailMessage mailMessage = new MailMessage(new MailAddress("from@gmail.com")
                                       , new MailAddress("to@gmail.com"));
            mailMessage.Subject = "Exception Occured in your site";
            mailMessage.IsBodyHtml = true;

            System.Text.StringBuilder errorMessage = new System.Text.StringBuilder();

            errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}","Exception",ex.Message));
            errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", "Stack Trace", ex.StackTrace));

            if (ex.InnerException != null)
            {
                errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", " Inner Exception", ex.InnerException.Message));
                errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", "Inner Stack Trace", ex.InnerException.StackTrace));
            }

            mailMessage.Body = errorMessage.ToString();

            System.Net.NetworkCredential networkCredentials = new
            System.Net.NetworkCredential("youraccount@gmail.com", "password");
           
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.EnableSsl = true;
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = networkCredentials;
            smtpClient.Host = "smtp.gmail.com";
            smtpClient.Port = 587;
            smtpClient.Send(mailMessage);

           
        }
    }
}

使用:
using System;

namespace Experiement
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender,System.EventArgs e)
        {
            try
            {
                throw new Exception("My custom Exception");
            }
            catch (Exception ex)
            {
                ex.SendErrorEmail();
                Response.Write(ex.Message);
            }
        }

    }
}
分享到:
评论

相关推荐

    ASP.net 3.5电子教案

    ASP.NET 3.5是微软开发的一个用于构建Web应用程序的框架,它基于.NET Framework 3.5版本。这个框架提供了一种高效、易用且功能强大的方式来开发动态网站、Web服务和富交互式Web应用。ASP.NET 3.5在前一版本的基础上...

    自动点滴管理系统(.NET 3.5框架的WCF技术实现).rar

    自动点滴管理系统是一个基于.NET 3.5框架的软件应用,其核心技术是Windows Communication Foundation(WCF),这是一种微软提供的用于构建分布式应用程序的服务模型。WCF整合了.NET Framework中的多种通信技术,如...

    web程序设计实验沈世根版本.docx

    ASP.NET 3.5 网站开发实验报告 本实验报告旨在记录 ASP.NET 3.5 网站开发的实验过程、结果和心得体会。实验分为两部分,分别是 C# 和 ASP.NET 3.5 实验,以及 ASP.NET 3.5 网站开发基础实验。 一、C# 和 ASP.NET ...

    《Web-程序设计实验》课程教学大纲.docx

    5. 实验五:掌握C#基础,包括语法、流程控制和异常处理,并在ASP.NET 3.5中使用C#类。 6. 实验六:理解ASP.NET 3.5标准控件,如按钮、文本框等,掌握其事件处理。 7. 实验七:客户端和服务器端验证,学习各种验证...

    newtonsoft 3.5 三个版本

    1. 错误处理和异常报告:提供更好的错误反馈机制,帮助开发者调试和修复问题。 2. 更多的 JSON 格式支持:可能增加了对 JSON 格式的更多支持,如 JSON 数组、嵌套对象等。 3. 性能优化:可能在速度和内存使用上进行...

    asp.net实验三.doc

    4. **Web应用程序项目**:实验中创建了一个新的Web应用项目,这是ASP.NET中用于构建Web应用程序的基础结构,包含ASP.NET页面、类和其他资源。 5. **Web控件**:实验中的网页Tetst_1.ASPX包含了Label、TextBox和...

    C#/.Net编码规范

    - 一个类文件里应该有且仅有一个命名空间。 - 避免在一个类文件里代码超过500行。 - 尽量使用类库包含程序的业务逻辑。 - 数据结构里,应该总是更倾向于使用C#的泛型。 - 尽量缩小变量的作用域。 **5.4 接口设计** ...

    VB.NET 2010中货币的文本框

    标题“VB.NET 2010中货币的文本框”指的是创建一个特殊类型的文本框控件,它能够自动格式化显示的数值为货币格式,提供更友好的用户体验。这个组件对于财务应用程序、销售报告或者任何需要精确输入货币数据的场景都...

    selenium-dotnet-3.4.0

    WebDriver.chm文件是一个帮助文档,其中包含了关于如何使用WebDriver API的详细信息,包括各种命令和方法,如打开网页、点击元素、输入文本等。 2. **.NET Bindings**: Selenium提供了.NET语言的绑定,使得.NET...

    多线程游戏服务器浏览器

    【标签】中的"VB .NET .NET3.5"表明这个项目是用Visual Basic .NET语言编写,并且基于.NET Framework 3.5开发的。VB .NET是一种面向对象的编程语言,适用于构建Windows桌面应用、Web应用和服务。而.NET 3.5框架包含...

    C# winform图书馆里系统

    总的来说,“C# WinForm图书馆管理系统”是一个综合运用C#、WinForm、LINQ和SQL Server 2008技术的实例,它展示了如何构建一个功能完善的桌面应用系统,同时也为学习者提供了实践和研究的宝贵资料。通过深入理解和...

    具有FaultException详细信息的WCF DataContract

    在 `.NET3.5` 及更高版本中,`Add Service Reference` 或 ` svcutil.exe` 工具可以帮助生成客户端所需的代理类,这些代理类包含了服务合同、数据合同和故障合同的定义。 在IIS5.1和SQL Server 2000/2005环境下部署...

    c#数据库课程设计图书管理系统

    Windows Forms是.NET Framework提供的一个用于构建桌面应用程序的工具集,而WPF则提供了更丰富的可视化效果和更强的UI设计能力。在图书管理系统中,我们可以创建各种控件,如文本框、按钮、列表视图等,来实现用户与...

    在ASP NET MVC中使用Watin进行自动化的UI测试

    3. **初始化浏览器**: 在测试方法内部,使用`Browser`类实例化一个浏览器对象,例如`IE ie = new IE("http://yourapplicationurl.com")`,这样就启动了一个指向你的ASP.NET MVC应用的浏览器实例。 4. **执行测试...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    安全测试报告

    根据提供的“安全测试报告”内容,我们可以总结出以下几个关键的安全知识点: ### 1. 报告概述 - **工具版本**:此报告是由IBM Security AppScan Standard 9.0.2.1版本创建的。 - **扫描时间**:报告中的Web应用...

Global site tag (gtag.js) - Google Analytics