【发布时间】:2018-06-29 04:32:59
【问题描述】:
我曾经有一个 API 用于连接到发送邮件的邮件服务。此邮件服务提供的参数之一是附件流。 sendMail 函数是同步的,所以我没有任何问题
除了我们正在尝试制作与上述类似的新 API。虽然原始版本是常规的 .NET,但我们使用的新版本使用的是 .NET Core 2,0。这意味着连接到该服务后,一切都变得异步了。
我想让我的服务像这样运行
try
{
// Send the email.
var result = mailService.SendMailWithMessageAsync(emailMessage, "DefaultMail").Result;
}
catch (Exception ex)
{
string error = ex.ToString();
}
我得到了不支持的内存超时。如果我不使用任何附件,我的邮件服务将正常工作。
有什么建议吗?
【问题讨论】:
-
为什么是“结果”?调用者不是异步的吗?
-
我试图模仿非异步的原始 API 的行为。
-
此外,.NET Core 包装了所有连接的服务以使它们异步。因此,如果您附加了一个名为 mail 的服务并具有一个名为 SendMail 的函数,那么您现在拥有的邮件服务有一个名为 SendMailAsync 的函数,而不是您的邮件服务中的原始 SendMail。