【问题标题】:How to catch `System.Net.WebException` in a web page如何在网页中捕获“System.Net.WebException”
【发布时间】:2013-09-22 07:18:00
【问题描述】:

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

无法解析远程名称:'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 来防止这种情况。但是如何。我无法解决这个问题。

【问题讨论】:

    标签: asp.net iis razor webmail


    【解决方案1】:

    问题是System.Mail.SmtpException

    由于网络无法连接或解析 smtpserver (smtp.gmail.com),因此引发此异常

    因此,电子邮件没有发送,仍然出现错误。

    所以我就用了

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      相关资源
      最近更新 更多