我试图处理我的消息中毒,因为它没有点击我的毒药方法。我关注this article from Microsoft,这是我的代码:
public static void ProcessQueueMessage([ServiceBusTrigger("emailqueue")] EmailModels.EmailSendModel message, TextWriter log,[SendGrid()] out Mail mail)
{
log.WriteLine(message);
mail = new Mail(){Subject = message.Title};
mail.From = new Email("me@gmail.com");
mail.AddPersonalization(new Personalization()
{Tos= message.To.Select(t=>new Email (t.Email)).ToList()});
mail.AddContent(new Content("text/plain", $"The message {message.Body}' was successfully processed."));
}
public static void ProcessPoisonMessage([ServiceBusTrigger("emailqueue-poison")] EmailModels.EmailSendModel message, TextWriter logger)
{
logger.WriteLine($"start poisoning");
logger.WriteLine($"Poisoning message for proposal id {message.ProposalId} for list {JsonConvert.SerializeObject(message.To)}");
}
发送方法被点击5次并且(故意)失败但是中毒没有被击中而且我的消息在死信信息中结束而没有任何动作:| < / p>
我做错了什么?
答案 0 :(得分:1)
您引用的文章描述的是Azure存储队列,而不是服务总线。它们是不同的服务,毒物消息处理是完全不同的。
尝试使用
标记触发器[ServiceBusTrigger("emailqueue/$DeadLetterQueue")]