-2
사이트 오류에 대한 알림을 받고 싶습니다. global.asax를 제외한 애플리케이션의 모든 곳에서 작동하는 똑 바른 코드입니다! 다른 프로젝트에서은 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("[email protected]", "Site Errors");
errorMessage.Subject = "Error in sending overseas user";
errorMessage.CC.Add(new MailAddress("[email protected]", "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
{
}
}
업데이트 : 나는 내 웹 사이트의 폴더에있는 파일에 대한 예외를 작성하는 로직을 작성했습니다, 나는 내 dev에 상자에 논리 것을 시도 그것은 효과가 있었지만 호스트에서는 결코 작동하지 않습니다 !! 이게 날 미치게 해! 전자 메일 논리가 내 상자에서 작동하고, 파일 로깅은 내 상자에서 작동하지만 그 중 어느 것도 프로덕션에서 작동하지 않습니다. 이것은 정말로 이상합니다 ... 어떤 생각?
어떻게 작동하지 않습니까? 예외가 발생합니까? 그렇다면 어떤 예외입니까? 또한 빈'catch' 절은 최악의 관행으로 간주됩니다. 실제로 그것에 대해 뭔가를 할 수 없다면 예외를 잡아 내지 마십시오. –
예외가 발생합니까? –
Throw되는 예외는 무엇입니까? 네트워크 또는 방화벽 문제에서 권한 문제 일 수 있습니다. 시작을 위해 SmtpClient에 올바른 자격 증명을 제공해야합니다 ... http://stackoverflow.com/questions/298363/how-can-i-make-smtp-authenticated-in-c-sharp – Lloyd