【发布时间】:2012-11-05 11:56:27
【问题描述】:
我有一个 ASP.NET Web API,它接受 HTTP PUT 方法中的 DTO,执行一些验证,然后 Bus.Send()s 一个命令。
目前,所有消息都在配置的 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,可以看到消息已进入正确的队列并且看起来格式正确。
当我越过最后一个括号时,消息立即移入错误队列。 断点后似乎没有其他代码在运行(自定义过滤器/属性等)
我推测这与队列事务有关,并且某些原因导致该事务中止,但我无法弄清楚它是什么......
任何帮助都会很棒,谢谢,
【问题讨论】:
-
您是否无法访问对队列中的消息执行某些操作的 NServiceBus 服务/消息处理程序代码?
标签: asp.net-web-api msmq nservicebus3