问题标签 [nservicebus4]
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.
nservicebus - NServiceBus - DefineEndpointName 和 app.config MessageEndpointMappings 之间的区别
有人能够解释在 Configure.DefineEndpointName 中配置 EndpointName 和在 MessageEndpointMappings 下的 app.config 中指定它之间有什么区别吗?
IE
和
nservicebus - Bus.Reply 当从佐贺和非佐贺呼叫时
我有一个 NServiceBus 端点,用于处理将文档保存到文档管理系统。保存文档后,我调用Bus.Reply(new DocumentSaved{})
.
当我SaveDocument
从 Saga 发送(它非常关心回复)时,这工作正常,但是当我从我的 Web 客户端端点(即 MVC 项目,它根本不关心回复)发送它时它会失败。失败是因为我的 Web 客户端端点没有队列来处理回复。
我在这里做错了什么?(我真的不想为我的 MVC 项目创建一个队列来保存一堆永远不会被处理的回复。)
nservicebus - 在 NServiceBus 5 中获取 EndPointName
我正在将我的应用程序从 NServiceBus 4 升级到 5。
我有一个实现的类,IWantToRunWhenBusStartsAndStops
并且在Start()
我打印出 EndpointName 的方法上 - 从NServiceBus.Configure.EndpointName
在 NServiceBus 5 上它已被弃用,我想正确地做到这一点。如何获取 EndpointName?
concurrency - 特定的 NServiceBus Sagas:并发访问 Azure 表存储中持久的 Saga 数据
这个问题是关于并发访问 saga 数据的,当 saga 数据保存在 Azure 表存储中时。它还参考了 Particular 文档中的信息:http: //docs.particular.net/nservicebus/nservicebus-sagas-and-concurrency
我们注意到,在单个 saga 并发执行处理程序中,对 saga 数据的修改似乎是在“最后一个将更改发布到 azure table storage 获胜”的场景中进行的。将 NSB 与 Azure 表存储结合用作 Saga 数据持久层时,这是预期的行为吗?
例子:
- Saga Data 中的整数属性,假设它当前 = 5
- 在这个传奇中,5 个命令由同一处理程序的 5 个实例处理
- 每个命令处理程序都会递减 saga 数据中的整数属性
- 在处理这 5 条消息后,saga 数据中整数属性的最终值实际上可能是 4 - 如果每条消息都由 saga 的新实例处理,可能在不同的服务器上,每个服务器都有一个 saga 数据的副本,指示整数属性为 5 ,将其减至 4,然后备份。我刚刚描述的是一个非常并发的例子,但是如果同时处理 5 条消息中的任何一条,整数很可能大于 0,saga 数据整数属性达到 0 的唯一时间是 5 条命令恰好执行串行。
另外,由于 Azure 表存储支持乐观并发,是否可以像使用 Raven 作为持久性技术时为 RavenDB 启用此功能一样为表存储启用此功能?
如果这是不可能的,那么推荐的处理方法是什么?目前,我们正在订阅这样一种范式,即 saga 中可能同时处理多个消息的任何处理程序都不允许修改 saga 数据,这意味着我们对 saga 消息的协调是通过 saga 外部的方式完成的,而不是使用 Saga 数据正如我们最初的意图。
c# - Nservicebus 无法在本地系统上启动
我最近升级到 nservicebus v4.6,当我尝试使用 services.msc 在本地启动时,它会抛出错误“本地系统上的服务已启动和停止”。无法弄清楚缺少什么。
我可以使用命令行来启动 nservicebus,如下所示:
c# - NServiceBus 如何知道要使用哪个 DLL?
这不是问题,而是让我理解发生在 NserviceBus 中的“魔法”的问题
我有一个以这种方式调用 NServiceBus-Service 的工作环境:
现在在同一个目录中有我的应用程序“My.Adapter.dll”,它也有一个配置。任何地方都没有 NserviceBus.config。仍然:NserviceBus 似乎知道它必须使用“My.Adapter.dll”
为什么 NServiceBus 知道这一点?我没有在队列 (MSMQ) 或其他任何地方找到我的应用程序的任何引用。它是否保存在注册表中?如果是:在哪里?
c# - 如何在 NServiceBus 4.x 上更新到 StructureMap 3.x?
我想在我的 MVC 项目上升级到 StructureMap 3.x,但我被困在 NServiceBus 4.x 上,因为 5.x 许可条款对我们有限的使用没有意义。MVC 项目是只发送的。
如何在保留 NSB 4.x 的同时升级 StructureMap?
nservicebus - NServiceBus 端点路由注入
我正在尝试IRouteMessagesToEndpoints
使用结构映射在 NServiceBus 中注入我自己的,因为我需要根据某些业务逻辑(而不是通过命名空间/程序集/类型)将各种消息重定向到不同的端点。这将允许它使用bus.Send();
并根据我们的要求进行配置。我认为这是可能的,但我似乎无法让它发挥作用。我已经尝试使用Configure.Component()
andObjectFactory.Configure()
进行注入,并且两者都运行没有任何异常,但是当我调试接口的实现时,断点没有命中。
我的问题是,可以这样做吗(互联网上没有任何内容涵盖这一点)?我注意到 GatewayReceiver 中的 EndPointRouter 有一个设置器,但我不知道如何访问该属性。
sql-server - 压缩标头
我们将 NServiceBus 4.6 与 SQL Server 传输 (2012) 一起使用。使用可用性组设置 SQL Server 数据库以实现高可用性。
我们的 DBA 抱怨我们在传输数据库中发生的“流失”量,尤其是这给我们的 WAN 带来的负载。
我们目前正在使用 XML 序列化,因此我开始研究我们可用的其他序列化选项(可能更倾向于 JSON,以便它仍然可读)。然而,在开始研究这一点时,我意识到我们的消息体通常在 600 到 1000 字节之间,而我们的消息头通常在 1200 - 1800 字节1的范围内。因此,即使我在体型方面实现了很大的节省,也不会产生我正在寻找的大规模改进。
问题
据我了解,当消息存储在 SQL Server 数据库中时,标题不必是可读的,有什么方法可以压缩它们吗?
或者其他策略来减少我们从这个数据库中添加和删除的数据量?(虽然暂时停留在 NSB 4.6 上)
1我们自己为不属于消息类的元数据添加了一些自定义标头。
a由于每条消息至少进入一个队列表,然后从该表中删除并放置在审计表中,在我们稍后删除较旧的审计条目之前,我们有很多消息,我们放了很多在 SQL Server 事务日志中。
nservicebus - 使用 NServiceBus.Host 调用 OutgoingHeaders
使用 NServiceBus 4.0.11 我想打电话
Header Manipulation 示例展示了如何使用自定义主机调用它。我想在使用 NServiceBus.Host 时调用它。
所以实际上我想引用 Bus 的实例,以调用 OutgoingHeaders。尝试过 IWantCustomInitialization 但在其中调用 CreateBus 时给了我一个异常。INeedInitialization 也不是要走的路。
我应该如何调用 Bus.OutgoingHeaders["user"] = "john"; 在使用 NServiceBus.Host 时?