【问题标题】:NServiceBus : No destination specified for message(s):NServiceBus:没有为消息指定目的地:
【发布时间】:2013-01-28 09:59:04
【问题描述】:

我刚刚创建了一个新的 NServiceProject,如下所示:

http://support.nservicebus.com/customer/portal/articles/856687-getting-started---creating-a-new-project

但运行项目后,我收到以下错误

"No destination specified for message(s):".

我不确定我哪里出错了。

我已经创建了 ASP.NET MVC 类型的项目。

【问题讨论】:

  • 你的服务消息部署到MVC主机了吗?
  • @stephenl。不,链接没有谈论它。我正在使用 Visual Studio 运行应用程序。如何将服务部署到 MVC 主机?
  • 查看有关部署组件的部分。它说“右键单击 SubmitOrderSender 组件,选择“部署到...”,然后从下拉列表中选择电子商务端点。”
  • @Stephenl:是的,我做到了。我不确定是什么问题。我已按照所有说明进行操作。

标签: asp.net-mvc nservicebus


【解决方案1】:

NServiceBus“没有为消息指定目的地:”通常是由于路由配置丢失或定义不正确造成的。

为了让 NServiceBus 为消息找到正确的目标队列,路由配置必须定义传递映射。可以为命令、类型或事件定义路由。

https://docs.particular.net/nservicebus/messaging/routing

以下 sn-p 显示了 NServiceBus 6 的路由示例:

var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
var routerConfig = transport.Routing();
routerConfig.RouteToEndpoint(
    assembly: typeof(MyMessage).Assembly,
    destination: "my.nservicebus.queue");

【讨论】:

【解决方案2】:

您应该指定端点配置:

<UnicastBusConfig ForwardReceivedMessagesTo="audit">
<MessageEndpointMappings>
  <add Messages="InternalMessages.Commands.SendOrderConfirmationEmail, InternalMessages" Endpoint="ExternalGateway.Salesforce" />
</MessageEndpointMappings>

【讨论】:

  • 我认为这是一种更简洁的添加映射的方法,应该标记为正确答案。
【解决方案3】:

我不确定你可能做了什么,但听起来你在某个地方错过了一步。我按照教程创建了一个工作副本供您参考,希望它能帮助您识别问题。

https://github.com/sliedig/NServiceBusStudio.Amazon.Demo

【讨论】:

    【解决方案4】:

    这是因为您错过了添加 NServiceBus Host 端点的步骤:

    继续创建另一个名为 OrderProcessing 的端点作为 NServiceBus 主机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多