我有一个 ASP.NET Web API,它在 HTTP PUT 方法中接受 DTO,执行一些验证,然后执行 Bus.Send()sa 命令。
目前,所有消息都在配置的 MSMQ 错误队列中结束。
这是一些伪代码作为我正在使用的模型的概述......
public HttpResponseMessage Put([FromBody]EntityModel entity)
{
if (ModelState.IsValid)
{
_bus.Send(new command());
return Request.CreateResponse(HttpStatusCode.Accepted);
}
else
{
var msg = new HttpResponseMessage(HttpStatusCode.NotModified) { ReasonPhrase = "Error text here" };
return msg;
}
}
经过调查,我在 Web API 操作方法的最后一个大括号/大括号上设置了一个断点,并查看了计算机管理中的 MSMQ,可以看到消息已进入正确的队列并且看起来格式正确。
当我越过最后一个括号时,消息立即移入错误队列。断点后似乎没有其他代码运行(自定义过滤器/属性等)
我推测这与队列事务有关,并且某些原因导致该事务中止,但我无法弄清楚它是什么..
任何帮助都会很棒,谢谢,