私はASP.NETを初めて使用し、ユーザーにエラーページを表示しながら、すべてのアプリケーションエラーを取得して電子メールで送信したいという非常に基本的なサイトを持っています。私はこのテーマについてたくさん読んでいて、たくさんの情報があるようです。以下は私が思いついたものですが、セッションで例外を維持するのに問題があるので、それを私に電子メールで送信できます。
NullReferenceException was unhandled by user code
Error.aspx.csファイルからex.Messageを取得し続けます。
何かご意見は?
Global.asax.cs-
void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
HttpContext.Current.Response.Redirect("~/Error.aspx");
}
Error.aspx.cs-
public partial class Error : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Exception ex = (Exception)Session["Exception"];
this.SendEmail(ex);
Session.Remove("Exception");
}
}
private void SendEmail(Exception ex)
{
string body = "An exception occured at "
+ DateTime.Now.ToLongTimeString()
+ " on " + DateTime.Now.ToLongDateString()
+ "<br />" + ex.Message; //ERROR HERE
MailMessage msg = new MailMessage("from@email.com", "to@email.com");
msg.Subject = "Exception in Portal Website";
msg.Body = body;
msg.IsBodyHtml = true;
SmtpClient client = new SmtpClient("localhost");
client.Send(msg);
}
}