我正在构建一个需要发送一些交易邮件的系统,为了达到这个目的,我使用Azure存储队列暂时存储邮件,然后由WebJob选中并发送给目标收件人。
我的代码如下:
SendGridMessage message = new SendGridMessage();
//Populate message with details - omitted for brevity
var serializer = new JavaScriptSerializer();
var modelAsString = serializer.Serialize(message);
try
{
var setting = CloudConfigurationManager.GetSetting("AzureStorageConnectionString");
var account = CloudStorageAccount.Parse(setting);
var queueClient = account.CreateCloudQueueClient();
var queue = queueClient.GetQueueReference("FSPortalEmailQueue");
queue.CreateIfNotExists();
queue.AddMessage(new CloudQueueMessage(modelAsString));
}
catch (Exception ex)
{
//Something went wrong
}
每次我尝试执行编码器时,都会在
上抛出异常var modelAsString = serializer.Serialize(message);
“调用目标引发了异常。”
抛出的内部异常是
来自“SendGrid.SmtpApi”的{“Bad key path!”}
请告诉我这里的错误。
答案 0 :(得分:2)
经过一番挖掘,结果发现message.header节点没有被初始化。添加后
message.Header = new SendGrid.SmtpApi.Header();
message.Header.SetTo(new List<String> { enquiry.EnquiryCreatedBy.Email });
所有人都开始非常神奇地工作