问题标签 [nservicebus5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
187 浏览

c# - NServiceBus 生成没有简单类型命名空间的 XML 消息

我目前正在从 NServiceBus 4.7.5 升级到 NServiceBus 5.2.4,当使用 XmlSerializer 时,我注意到当我尝试序列化消息时它会生成无效的 XML 消息 - 不再声明简单类型的命名空间,但它们仍在文档中使用。

例如,如果我尝试序列化一条消息,该消息公开了如下定义的 SerializedPair 属性:

在 4.7.5 中,它将被序列化为:

在 5.2.4 中,它被序列化为:

请注意,“Messages”元素不再存在,并且“xmlns:guid”命名空间声明也丢失了,这使得该 XML 无效。如何让 NServiceBus 再次生成有效的 xml?

为了完整起见,我的 BusConfiguration 如下所示:

0 投票
1 回答
203 浏览

msmq - NServiceBus 消息超时与 timeToReachQueue

我正在尝试使用 NServiceBus 中的 MSMQTransportProtocol 设置消息到达队列的超时。

我读过这个:http ://docs.particular.net/nservicebus/msmq/connection-strings并尝试实现timeToReachQueue属性(根据我的理解)。

我所做的是在TimeToReachQueue我的消息中添加一个属性:

在发送消息的客户端中,我将以下内容放入app.config

我尝试了不同的时间戳值 - 基本上我试图让消息到达一个不可能的时间 - 我故意希望它超时。

但是我在连接字符串中设置的任何值似乎都不适用。消息总是成功到达,如果我timeToReachQueue在调试中检查属性,我会看到所有值都为零 - 而不是我尝试设置的值。

我什至在我的 EndpointConfig 中尝试了以下操作:

我在这里想念什么?

0 投票
1 回答
65 浏览

.net - 特定 ServiceInsight 通过 MessageMutator 处理加密消息

因此,由于各种内部原因,我无法使用 NService Bus 的内置加密命令属性,而不得不将其实现为 MessageMutator。我的代码如下所示:

这一切都运作良好,并且当它们被放入公共汽车时,它们会被加密。我正在尝试做的是能够在他们在 Particular 的 ServiceInsight 应用程序中查看消息时对其进行解密。我觉得他们提供了 IMutateTransportMessages 接口,并且在他们的网站上,特别提到了这样一个事实,即这是如何实现完整的消息加密;会有一种机制来为 ServiceInsight 创建一个插件来解密它。

0 投票
3 回答
394 浏览

nservicebus - NServiceBus & IoT - 将来自客户端的消息直接放入队列中,并在服务器端使用 NServiceBus 进行处理

后端使用 NServiceBus(版本 5)在 .NET 中编写。到目前为止,我们的客户端(.NET 客户端和 c++ 客户端)都在向具有 NServiceBus 的 WCF 服务发送消息,而 WCF 服务将 NServiceBus 消息发送给正确的工作线程。

现在我们正在对我们的架构进行一些更改,并希望一些客户端将消息直接放入队列中并跳过 WCF。我们有很多设备(大多数是用 C++ 编写的)。

我知道 NServiceBus 用它自己的对象包装它放入队列的消息。我的问题是,NServiceBus 是否可以在物联网环境中工作——设备将消息直接放入队列,中间没有适配器?还是让服务器端(工作人员)处理未使用 NServiceBus 对象包装的“常规”消息?

0 投票
2 回答
371 浏览

wcf - 服务总线序列

我们需要按照到达 MSMQ 的顺序处理所有消息。

我们将向客户端公开 WCF 服务,并且此 WCF 服务将使用 NServiceBus(Sendonly 总线)将消息发布到 MSMQ。

我们要开发一个windows服务(MessageHandler),它会使用Nservicebus从MSMQ读取消息并保存到数据库中。我们的数据库每天有几个小时不可用。

在数据库停机期间,我们希望进程重试 MSMQ 中的第一条消息并停止处理其他消息,直到数据库启动。一旦数据库启动,我们希望 NServicebus 按照发送消息的顺序进行处理。

在这种情况下,设置 MaximumConcurrencyLevel="1" MaximumMessageThroughputPerSecond="1" 会有所帮助吗?

使用 NServiceBus 处理这种情况的最佳方法是什么?

0 投票
2 回答
234 浏览

wcf - NServiceBus 和 WCF,它们如何相处?

简化...我们正在使用 NServiceBus 来更新我们的存储。

在我们的 sagas 中,我们首先从存储中读取数据并更新数据并将其再次放回存储中。NServicebus 实例自托管在 Windows 服务中。对存储的调用在其自己的程序集(“assembly1”)中分开。

现在我们还需要通过 WCF 从存储中同步读取。在某些情况下,在 sagas 中更新时会需要相同的读取。

我的意见很清楚,但也许我错了,因此我问这个问题......

我们是否应该设置一个使用“assembly1”副本的单独 WCF 服务?或者,WCF 实例是否应该托管 nservicebus?或者,还有更好的方法吗?

它在某种程度上是两个端点,用于同步调用的 WCF 和现在托管 nservicebus(已经存在)的 Windows 服务。

0 投票
1 回答
80 浏览

nservicebus - NServiceBus 工作人员注销不起作用

我正在尝试按照此处所述取消注册工作程序节点,但该过程似乎无法正常工作。如果分发器在运行注销脚本时有任何与断开连接的工作人员相关的控制消息,则下次消息进入时,它将消耗这些消息(有效地向节点发送更多工作)。只有之后分发器才会拒绝来自节点的控制消息。

有没有人让它正常工作=工人在注销后不应该收到任何新消息?

0 投票
1 回答
353 浏览

rabbitmq - NServiceBus RabbitMQ - DirectRoutingTopology 与每种消息类型的单独交换

我们在 MSMQ 之上使用 NServiceBus。现在我们正在着手使用 RabbitMQ——我们想要一个集中式队列,并发现 RabbitMQ 最能满足我们的需求。

转换我们的项目很容易,在 RabbitMQ 中,我们注意到它为每个端点和该端点中的消息类型创建了一个交换(和队列)。

我已经阅读了http://docs.particular.net/nservicebus/rabbitmq/configuration-api中的更改路由拓扑部分,它写在那里

对于不太复杂的场景,您可以使用 DirectRoutingTopology

文档未能解释的是将解决方案视为complex.

我已经搜索并找不到解释什么被认为是复杂的地方,以及何时应该使用 aDirectRoutingTopology而不是使用多个交换的默认选项。或者每种方法之间的区别/性能考虑是什么。

有人知道吗?

0 投票
1 回答
515 浏览

c# - 在 CQRS 中如何使用 NServiceBus 更新命令和查询存储

在 CQRS 中,如何确保命令处理程序以事务方式更新写入存储和读取存储?

我不确定这两个步骤是否应该是一个交易?还是您在这里依赖最终的一致性?这意味着读取存储最终会更新吗?

使用 NServiceBus 5 或 6 的(或一种)常用方法是什么?

在我们的应用程序中,我们有IRepository<T>(Add, Update) 用于命令端来更新 Sql Server 数据库。查询方面很简单。实体框架之上的数据库和外观DbContext

命令方面的步骤是:

  1. MVC 控制器从 View 接收数据
  2. 控制器操作创建一个命令/消息对象并将其发送到总线。
  3. 适当的命令处理程序创建适当的域对象并对其进行验证。
  4. 如果有效,则使用 IRepository 插入或更新数据库。
  5. 怎么办?

这是否必须是 NServiceBus 中的 Saga,其中第 1 步和第 2 步更新命令存储和读取存储?

谢谢你。

0 投票
1 回答
2051 浏览

c# - NServiceBus 在不显眼的模式下找不到 Endpoint 或 MessageEndpointMappings

我正在尝试将原始TestService端点连接到原始 WCF 服务,其中 WCF 服务实例使用最新的 NSB 5.2.9/Host6.0 将原始端点发送TestCommandTestService端点:

我无法正确配置它。错误信息:

我可以在不使用“不显眼的节点”的情况下做到这一点,但不能使用约定。在我尝试了一切之后,我对如何配置它感到非常困惑。WCF 主机是自托管的,而测试端点由 NServiceBus.Host 托管。

  1. IIS WCF 主机应用程序的 web.config
  2. 通过 NServiceBus.Config.IConfigurationSource
  3. 通过 NServiceBus.Config.IProvideConfiguration

现在我在 web.config 中有这个,这似乎无用且被忽略:

“Unobtrusive mode”:我为约定创建了一个单独的项目,由 WCF 主机端点和 TestService 端点引用。

这些约定似乎被TestService.

我的理解是 IIS WCF 主机必须在其 web.config 中声明映射,以便 WCF 服务知道将消息发送到哪里,bus.Send(new TestCommand("test"));但这不起作用。

然后我尝试在两个端点中定义这些映射,但没有运气。

此方法将输出使用上述约定找到的所有消息类型:

上面的方法输出消息类型“TestCommand”,因此它知道所做的约定。

我已经检查了 1000 倍的拼写错误,大小写,everyhting。我清洗了溶液。 我的问题是:为什么 NServiceBus 找不到端点?

请帮忙。