首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Global.cs进行System.Net.Mail错误处理

问使用Global.cs进行System.Net.Mail错误处理
EN

Stack Overflow用户
提问于 2012-04-11 10:32:01
回答 1查看 324关注 0票数 1

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

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

代码语言:javascript
复制
ErrorHandler.WriteError(Exception ex)

在这个方法中,为了初始化System.Net.Mail类,我创建了EmailHandler的一个新实例。在我的EmailHandler对象中,有一个私有成员。

代码语言:javascript
复制
private MailMessage m_mail = null;

在EmailHandler类的构造函数中,我创建一个新的MailMesage实例来构造电子邮件。

代码语言:javascript
复制
public EmailHandler()
{
   m_mail = new MailMessage(); 
}

此时,我得到以下错误。

代码语言:javascript
复制
System.Security.Cryptography.CryptographicException
"The handle is invalid."

我需要指出的是,只有当请求仅指向特定文件(如www.mysite.com/random-incorrect-image.jpg). )时,才会发生这种情况。

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

EN

回答 1

Stack Overflow用户

发布于 2012-04-11 15:31:04

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

在web.config中配置自定义404

代码语言:javascript
复制
<system.webServer>
  <httpErrors>
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" prefixLanguageFilePath="" path="/yourpath/yourcustom404.aspx" responseMode="ExecuteURL" />
  </httpErrors>

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

然后,您可以处理queryString,提取定制404.aspx的pageLoad中的url,发送电子邮件,并显示友好的消息。

对于aspx页面,您也可以这样做。在web.config中:

代码语言:javascript
复制
 <customErrors mode="On">
    <error statusCode="404" redirect="/yourpath/yourcustom404.aspx" />       
</customErrors>

不过,重定向将略有不同:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10104231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档