gpt4 book ai didi

c# - 尝试创建自定义错误警报

转载 作者:行者123 更新时间:2023-12-03 08:15:18 25 4
gpt4 key购买 nike

我尝试创建自己的自定义错误页面。 (无原始内容)基本上,当点击自定义错误页面时,它将获取错误的URL,并且该用户的用户名已登录,并向我发送了一封简短的smtp电子邮件。它实际上工作得很好,但是在我测试的页面上疯狂地收到了这些电子邮件,我认为没有任何问题。我想尝试获取有关为什么调用此自定义错误页面的一些信息,以便我可以尝试解决此问题。

任何人都有任何建议,以便我可以增强此页面的信息。

 protected void Page_Load(object sender, EventArgs e)
{
string url = HttpContext.Current.Request.Url.AbsoluteUri;
string DATETIME = DateTime.Now.ToString();
string UserName = HttpContext.Current.User.Identity.Name.ToString();

string fileName = Server.MapPath("_TextFiles/error.txt");
string mailBody = File.ReadAllText(fileName);

mailBody = mailBody.Replace("##url##", url);
mailBody = mailBody.Replace("##DATETIME##", DATETIME);
mailBody = mailBody.Replace("##UserName##", UserName);

MailMessage myMessage = new MailMessage();
myMessage.Subject = "Response from ";
myMessage.Body = mailBody;

myMessage.From = new MailAddress("*******n.com", "******");
myMessage.To.Add(new MailAddress("*********.com", "******"));

SmtpClient mySmtpClient = new SmtpClient();
mySmtpClient.Send(myMessage);

}

文本文件,因此您不会感到困惑。
Hello,

Response from Error.aspx


An error occured on page ##url##

at ##DATETIME##


Username: ##UserName##

最佳答案

我的网站具有相同的基本设置,但是您需要稍微更改一下方法。如果您从错误页面发送电子邮件,则该异常不再可用。这是我的工作

我扩展了System.Web.UI.Page类,并使用以下代码覆盖了OnError方法:

protected override void OnError(EventArgs e)
{
base.OnError(e);

System.Exception ex = Server.GetLastError();
Log.LogError("Error in Supr.CMS.Types.SuprPage", ex, Log.LogLevel.HandledExceptionFatal);
}

现在,我将其用作所有页面的基类,并且会收到有关所有错误的完整详细信息的通知。我包括异常消息和堆栈跟踪以及一些用户信息(包括IP地址和UserAgent),Cookie收集, session 收集,表单收集和缓存收集,因此当用户遇到错误时,我尽可能地了解网站的状态(有点太多,无法在此处发布)。

另一个注意事项...许多错误是由漫游器产生的,并且具有IP和UserAgent之类的信息,使我可以分解这些错误并增强我的请求阻止能力。

关于c# - 尝试创建自定义错误警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com