如何在网页中捕获`System.Net.WebException`

时间:2013-09-22 07:18:00

标签: asp.net iis razor webmail

我有一个页面,一切都很完美!问题或错误是,有时电力耗尽,我只有一个错误。错误或异常是服务器无法解析主机名:

无法解析远程名称:'smtp.gmail.com'

我正在使用IIS 8,我确信这不是IIS错误,也不是ASP.NET问题。

我搜索的内容:我在Google上搜索了很多,每个答案都是try {} catch {}所以我做了。我在块内尝试捕获。像这样:

try {
    WebMail.Send(// i will not write the tags because they are fine!
    );
} 
catch (System.Net.WebException e) {
            error = e.Message;
}
Response.Write(error);

这不能完美地捕捉错误!我在编写try catch块时遇到问题,或者我没有正确捕获错误。

另外需要注意的是,我有一个ajax请求。否则我会用:

ModelState.AddError(e.Message);

但我不能使用它(我想我不能)。我可以获得更好的方式,以便仅在连接到服务器时发送电子邮件,否则显示弹出窗口或不执行任何操作。但我无法做到这一点!我得到500 Internal Server Error。我可以使用try catch来防止这种情况。但是怎么样。我无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

问题是System.Mail.SmtpException

此异常被抛出,因为网络无法连接或解析smtpserver(smtp.gmail.com)

因此,电子邮件未发送,但仍有错误。

所以我刚用过

try {
  // send the email
} catch (System.Mail.SmtpException e) {
  // error message
}