无法从global.asax发送电子邮件

时间:2012-02-17 03:32:02

标签: c# asp.net

我想简单地收到有关网站错误的通知,我有这个直接的代码可以在应用程序的任何地方工作,除了在global.asax !!

void Application_Error(object sender, EventArgs e) 
    {
        UIHelper.SendErrorMessage(Server.GetLastError());
    }

另一个项目中的代码:

public static void SendErrorMessage(Exception ex)
        {
            MailMessage errorMessage = new MailMessage();
            errorMessage.From = new MailAddress("xxxxxx@gmail.com", "Site Errors");
            errorMessage.Subject = "Error in sending overseas user";
            errorMessage.CC.Add(new MailAddress("xxxxxxx@gmail.com", "xxxxx")); //test only
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("Source:{0}\n", ex.Source);
            sb.AppendFormat("Message:{0}\n", ex.Message);
            sb.AppendFormat("Stack Trace:{0}\n", ex.StackTrace);
            sb.AppendFormat("Inner Exception:{0}\n", ex.InnerException == null ? string.Empty : ex.InnerException.Message);
            errorMessage.Body = sb.ToString();
            errorMessage.IsBodyHtml = false;

            var smtp = new SmtpClient();

            try
            {
                smtp.Send(errorMessage);
            }
            catch
            {
            }
        }

更新:我已经编写了逻辑来将异常写入我网站上的文件夹中的文件,我在我的开发框中尝试了这个逻辑并且它有效,但它永远不会在主机中运行!!这让我抓狂!电子邮件逻辑在我的框中工作,文件记录在我的框中工作,但它们都不能在生产中工作?!这真奇怪......有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用Elmah

这是一个完整的解决方案。