gpt4 book ai didi

asp.net - 使用 System.Net.Mail 处理 Global.cs 错误

转载 作者:行者123 更新时间:2023-12-03 08:01:37 26 4
gpt4 key购买 nike

我正在使用 Global 类中的 Application_Error 来处理 404。

一旦 404 被捕获,我会发送一封电子邮件以记录它。为此,我调用一个静态方法来编写错误。

ErrorHandler.WriteError(Exception ex)

在这个方法中,我创建了我的 的一个新实例。电子邮件处理程序 为了初始化 System.Net.Mail 类(class)。在我的 电子邮件处理程序 对象我有一个私有(private)成员
private MailMessage m_mail = null;

的构造函数中电子邮件处理程序 类我创建一个新的 邮件实例以构建电子邮件。
public EmailHandler()
{
m_mail = new MailMessage();
}

此时我收到以下错误。
System.Security.Cryptography.CryptographicException
"The handle is invalid."

我需要指出,这只发生在请求仅针对特定文件时(例如 www.mysite.com/random-incorrect-image.jpg )。

当我请求像 这样的页面时发生www.mysite.com/random-incorrect-page.aspx

最佳答案

也许您应该对静态文件 404 尝试以下操作:

在 web.config 中配置自定义 404

<system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/yourpath/yourcustom404.aspx" responseMode="ExecuteURL" />
</httpErrors>

静态文件的 404 重定向将发生在 http://www.mysite.com/yourpath/yourcustom404.aspx?404;http://www.mysite.com/random-incorrect-image.jpg

然后你可以处理queryString来提取custom404.aspx的pageLoad中的url,发送你的email,并显示友好的消息

您可以对 aspx 页面执行相同的操作。
在您的 web.config 中:
 <customErrors mode="On">
<error statusCode="404" redirect="/yourpath/yourcustom404.aspx" />
</customErrors>

重定向会略有不同:

http://www.mysite.com/yourpath/yourcustom404.aspx?aspxerrorpath=/random-incorrect-page.aspx

关于asp.net - 使用 System.Net.Mail 处理 Global.cs 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10104231/

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