我正在尝试通过 C# 的 sendgrid 库发送电子邮件,在我的开发环境中它工作得很好,但是当我转移到我的质量环境时,出现以下错误,以前有人经历过吗?当我调用 SendEmailAsync 方法时出现此错误
{"Message":"Erro: System.AggregateException: 发生一个或多个错误。 ---> System.Net.Http.HttpRequestException: 发送请求时发生错误。 ---> System.Net.WebException:底层连接已关闭: 发送时发生意外错误。 ---> System.IO.IOException: 无法从传输连接读取数据: 现有连接被远程主机强制关闭。 ---> System.Net .Sockets.SocketException:现有连接被远程主机强制关闭 在 System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) 在 System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) --- 内部异常堆栈跟踪结束 --- 在 System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) 在 System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) 在 System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) --- 内部异常堆栈跟踪结束 --- 在 System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult,TransportContext& 上下文) 在 System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) --- 内部异常堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 SendGrid.Helpers.Reliability.RetryDelegatingHandler.d__3.MoveNext() --- 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 SendGrid.BaseClient.d__20.MoveNext() --- 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 SendGrid.BaseClient.d__21.MoveNext() --- 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 SendGrid.BaseClient.d__22.MoveNext() --- 内部异常堆栈跟踪结束 ---
最初我认为这可能是一个权限问题,但我在同一服务器上创建了另一个仅发送电子邮件的站点并且它有效,它似乎与我的项目相关,但我无法找出它可能是什么.. .
我忘了输入代码,在线发生错误:
_client.SendEmailAsync(emailMessage).Result
public EmailResponse Send(EmailContract contract)
{
var emailMessage = new SendGridMessage()
{
From = new EmailAddress(contract.FromEmailAddress,
contract.Alias),
Subject = contract.Subject,
HtmlContent = contract.Body,
PlainTextContent = contract.Body
};
emailMessage.AddTo(new EmailAddress(contract.ToEmailAddress));
if (!string.IsNullOrWhiteSpace(contract.BccEmailAddress))
{
emailMessage.AddBcc(new
EmailAddress(contract.BccEmailAddress));
}
if (!string.IsNullOrWhiteSpace(contract.CcEmailAddress))
{
emailMessage.AddCc(new EmailAddress(contract.CcEmailAddress));
}
return
ProcessResponse(_client.SendEmailAsync(emailMessage).Result);
}