c# - System.Net.Mail无法加载或初始化请求的服务提供者

标签 c# .net sockets exception smtp

当尝试使用System.Net.Mail.SmtpClient发送电子邮件时,出现以下异常:
System.Net.Mail.SmtpException: The SMTP host was not found.
内部异常(exception):
System.Net.Sockets.SocketException: The requested service provider could not be loaded or initialized
我的电子邮件发送代码非常简单:

private async Task SendEmail(string to, string subject, string email)
{
    MailMessage msg = null;
    SmtpClient smtp = null;
    try
    {
        var set = Settings.Default;
        msg = new MailMessage(set.EmailFrom, to, subject, email);
        smtp = new SmtpClient(set.SMTPServer, set.Port)
        {
            EnableSsl = true,
            Credentials = new NetworkCredential(set.EmailUsername, set.EmailPassword),
            Timeout = 20000
        };
        await smtp.SendMailAsync(msg);
    }
    catch (Exception e)
    {
        _log.Error("Error on sending email", e);
        throw;
    }
    finally
    {
        if (msg != null) msg.Dispose();
        if (smtp != null) smtp.Dispose();
    }
}

此错误并非每次都发生,而是经常发生。我试图用谷歌搜索它,但没有发现任何有用的东西。出现此错误时,互联网连接似乎稳定。

任何想法为什么会发生这种情况?

最佳答案

抱歉,没有将此作为评论发表,我没有足够的代表。

我使用与该实现非常相似的实现来运行一个过程,但是我也遇到了同样的事情。尝试减少SMTP超时,如果有太多请求尚未释放其现有连接,则新连接将被拒绝。这对我的具体实现有所帮助。

关于c# - System.Net.Mail无法加载或初始化请求的服务提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852104/

相关文章:

c# - 递归算法后变量神秘地不断变化

c# - 无法完全使用 WebBrowser 控件捕获网页

.net - 使用 HtmlAgilityPack 时出现内存问题?

c# - 无法在不同机器上运行Appium

c# - @ 后有 2 个字符的正则表达式电子邮件

c - 如何在C中通过udp套接字发送整数数组?

c - TCP 连接中链接断开时的 send() 函数行为

php - MySQL 尝试以访问权限禁止的方式访问套接字

c# - Windows 8 Metro TextBlock 动画

c# - 为什么在 Windows 7(.net 3.5) 中运行的应用程序在 Win8(.net4.5) 中无法运行