【发布时间】:2016-05-16 15:54:34
【问题描述】:
我正在使用 SendGrid Web 在带有 C# 的 ASP.NET MVC 网站中发送带有 PDF 附件的电子邮件。网站作为 Azure 网站托管在 Windows Azure 中。
在我的本地开发机器和同样托管在 Azure 中的测试站点上,一切都运行良好。
但是我觉得这很烦人,因为相同的设置在生产站点中不起作用。它对 SendGrid 使用相同的用户名和密码,但它不起作用。
我的代码类似于以下内容:
public static void SendEmail(string toEmail, string messageHtml)
{
var message = new SendGridMessage();
message.From = new MailAddress("me@mydomain.com", "Test Email");
message.AddTo(toEmail);
message.Subject = subject;
message.Html = messageHtml;
var credentials = new NetworkCredential("mysendgriduser", "mysendgridpassword");
var transportweb = new SendGrid.Web(credentials);
try
{
transportweb.DeliverAsync(message).Wait();
}
catch (Exception e)
{
throw e;
}
}
【问题讨论】:
-
您是否遇到任何错误?或者它根本不起作用?
-
仅供参考,
Sendgrid.Web.Web有一个同步的.Deliver(...)方法。.DeliverAsync(...).Wait()困扰着我。 -
你能提供比“不起作用”更多的细节吗?是否抛出异常?如果是这样,那是什么?包括异常消息、内部异常(如果有)和堆栈跟踪。另外,不要
throw e,因为这会生成该类型的新异常并终止堆栈跟踪。如果除了抛出它之外你不打算对 catch 块做任何事情,那么使用 try/catch 就没有任何意义了。 -
@valverij DeliverAsync 在其他 Azure 环境中完美运行。
-
@user1666620 我同意你的观点我仍在尝试捕获异常,一旦我得到它,我会发布详细信息。但困扰我的是相同的代码在其他环境中工作,它怎么会在这个特定的环境中失败?我相信我们要捕获的异常有很多答案。
标签: c# asp.net azure azure-web-app-service sendgrid